使用 Bash 指令碼變更 Amazon EC2 執行個體類型 - AWS Command Line Interface

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 Bash 指令碼變更 Amazon EC2 執行個體類型

這個 Amazon EC2 的 bash 指令碼範例會使用 AWS Command Line Interface (AWS CLI) 變更 Amazon EC2 執行個體的執行個體類型。如果執行個體正在執行,它會停止執行個體,變更執行個體類型,然後在要求時重新啟動執行個體。Shell 指令碼是專為在命令列界面中執行而設計的程式。

注意

如需其他指令範例,請參閱參考指南

開始之前

在可以執行下列任何範例之前,您必須先完成下列事項。

  • 安裝及設定 AWS CLI。如需詳細資訊,請參閱 安裝或更新到最新版本的 AWS CLI驗證與存取憑證

  • 您使用的設定檔必須具有允許範例執行 AWS 作業的權限。

  • 您有許可能夠停止和修改帳戶中正在執行的 Amazon EC2 執行個體。如果您執行測試指令碼,它會為您啟動執行個體,測試變更類型,然後終止執行個體。

  • AWS 最佳作法是授與此程式碼最少權限,或僅授與執行工作所需的權限。如需詳細資訊,請參閱《AWS Identity and Access Management (IAM) 使用者指南》中的授予最低權限

  • 此代碼尚未在所有 AWS 區域中進行測試。某些 AWS 服務僅在特定地區提供。如需詳細資訊,請參閱《AWS 一般參考指南》中的服務端點和配額

  • 運行此代碼可能會導致您的 AWS 帳戶收費。您有責任確保在使用完該指令碼建立的所有資源後將這些資源移除。

關於此範例

這個範例被寫成 Shell 指令碼檔案 change_ec2_instance_type.sh 中的一個函數,您可以從另一個指令碼或從命令列中 source。每個指令碼檔案包含描述每個函數的註釋。待函數儲存到記憶體中,您就可以從命令列呼叫它。例如,下列命令會將指定執行個體的類型變更為 t2.nano

$ source ./change_ec2_instance_type.sh $ ./change_ec2_instance_type -i *instance-id* -t new-type

如需完整範例和可下載的指令碼檔案,請參閱上的AWS 程式碼範例儲存庫中的變更 Amazon EC2 執行個體類型GitHub

參數

-i(字串) 指定要修改的執行個體 ID。

-t(字串) 指定要切換的 Amazon EC2 執行個體類型。

-r(切換) 依預設,此為取消設定。如果設定為 -r,則在類型切換之後重新啟動執行個體。

-f(切換) 依預設,指令碼會在進行切換之前提示使用者確認關閉執行個體。如果設定為 -f,函數不會在關閉執行個體進行類型切換之前提示使用者

-v(切換) 依預設,指令碼會以無提示的方式操作,只會在發生錯誤時顯示輸出。如果設定為 -v,函數會在整個操作期間顯示狀態。

檔案

change_ec2_instance_type.sh

主指令碼檔案包含執行下列任務的 change_ec2_instance_type() 函數:

  • 驗證指定的 Amazon EC2 執行個體是否存在。

  • 除非選取 -f,否則會在停止執行個體之前警告使用者。

  • 變更執行個體類型

  • 如果設定了 -r,重新啟動執行個體並確認執行個體正在執行

檢視上的程change_ec2_instance_type.sh式碼GitHub

test_change_ec2_instance_type.sh

檔案 test_change_ec2_instance_type.sh 指令碼會為 change_ec2_instance_type 函數測試各種程式碼路徑。如果測試指令碼中的所有步驟都能正常運作,測試指令碼會移除它所建立的所有資源。

您可以使用下列參數來執行測試指令碼:

  • -v(切換) 每個測試都會在執行時顯示通過/失敗狀態。依預設,測試會以無提示的方式執行,且輸出只包含最終的整體通過/失敗狀態。

  • -i(切換) 指令碼會在每次測試後暫停,讓您能夠瀏覽每個步驟的中繼結果。可讓您使用 Amazon EC2 主控台檢查執行個體目前的狀態。在出現提示時按下 ENTER 後,指令碼繼續執行下一個步驟。

檢視上的程test_change_ec2_instance_type.sh式碼GitHub

awsdocs_general.sh

指令碼檔案 awsdocs_general.sh 會保存在各個 AWS CLI進階範例中使用的一般用途函數。

檢視上的程awsdocs_general.sh式碼GitHub

參考

AWS CLI 參考:

其他參考: