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

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

使用 中的 bash 指令碼變更 Amazon EC2執行個體類型 AWS CLI

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

注意

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

開始之前

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

  • 安裝及設定 AWS CLI。如需詳細資訊,請參閱 安裝或更新至最新版本的 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 - (開關) 每個測試會顯示pass/failure status as they run. By default, the tests runs silently and the output includes only the final overall pass/failure狀態。

  • -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 參考:

其他參考: