本文件 AWS CLI 僅適用於 第 1 版。如需 第 2 版的相關文件 AWS CLI,請參閱 第 2 版使用者指南。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
AWS CLI 中的 AWS CLI 骨架和輸入檔案
大部分 AWS CLI 命令接受來自檔案的匯入參數。這些範本可以使用 generate-cli-skeleton 選項產生,然後使用 --cli-input-json 參數匯入。
關於 AWS CLI 骨架和輸入檔案
大部分 AWS Command Line Interface (AWS CLI) 命令支援使用 --cli-input-json 參數從檔案接受所有參數輸入。
這些相同命令使用 --generate-cli-skeleton 參數,以您能夠編輯和填入的所有參數來產生 JSON 格式的檔案。然後,您可以執行命令搭配 --cli-input-json 參數,以指向要填入的檔案。
重要
自訂 AWS CLI 命令,例如 aws s3 命令不支援本主題中描述的 --generate-cli-skeleton 或 --cli-input-json 參數。若要檢查特定命令是否支援這些參數,請針對您要使用的命令執行 help 命令,或參閱 AWS CLI 第1 版參考指南。
--generate-cli-skeleton 會產生並顯示參數範本,您可以在命令上自訂該範本並用作輸入。產生的範本包含命令支援的所有參數。
--generate-cli-skeleton 參數接受下列其中一個數值:
-
input– 產生的範本包括所有格式化為 JSON 的輸入參數。這是預設值。 -
output– 產生的範本包括所有 JSON 格式的輸出參數。
由於 AWS CLI 基本上是服務 API 的「包裝函式」,因此骨架檔案預期您依其基礎 API 參數名稱參考所有參數。這很可能與 AWS CLI 參數名稱不同。例如,名為 AWS CLI 的 user-name 參數可能會映射到名為 AWS 的 UserName 服務 API 參數 (請注意更改的大小寫和遺失的破折號)。建議您使用 --generate-cli-skeleton 選項,以「正確」參數名稱產生範本,以免發生錯誤。您可以參考該服務的《API 參考指南》,以查看預期的參數名稱。您可以從範本刪除任何非必要且不想為其提供數值的參數。
例如,如果您執行以下命令,其會為 Amazon Elastic Compute Cloud (Amazon EC2) 命令 run-instances 產生參數範本。
產生和匯入命令骨架
若要產生和使用參數骨架檔案
-
執行命令搭配
--generate-cli-skeleton參數,產生 JSON,並將輸出導向至檔案以便儲存。 -
在文字編輯器中開啟參數骨架檔案,移除您不需要的任何參數。例如,您可以將範本剔除為下列內容。移除不需要的元素之後,請確認檔案仍是有效的 JSON 。
在此範例中,我們會保留設定為
true的DryRun參數,以便使用 Amazon EC2 試轉功能。此功能可讓您安全地測試命令,而不必實際建立或修改任何資源。 -
使用適合您方案的數值,填入其餘數值。在這個範例中,我們提供 Amazon Machine Image (AMI) 的執行個體類型、金鑰名稱、安全群組和識別符以供使用。此範例假定為預設 AWS 區域。AMI
ami-dfc39aef是託管於us-west-2區域中的 64 位元 Amazon Linux 映像。如果使用不同的區域,您必須 找到要使用的正確 AMI ID。 -
使用
file://前綴將完整的範本檔案傳遞到--cli-input-json參數,以使用完成的參數執行命令。AWS CLI 會解譯為相對於目前工作目錄的路徑。下列範例 AWS CLI 會在目前的工作目錄中尋找檔案。試轉錯誤表示 JSON 正確產生且參數值有效。如果在輸出中報告其他問題,請修復它們並重複先前步驟,直到顯示「
Request would have succeeded」訊息為止。 -
現在您可以將
DryRun參數設定為false,以停用試轉。 -
執行命令,
run-instances會實際啟動 Amazon EC2 執行個體並顯示成功啟動產生的詳細資訊。輸出的格式是由--output參數控制,與輸入參數範本的格式分開。
結合輸入檔案和命令列參數
輸入檔案可用於所有參數,也可以與 AWS CLI 中指定的參數結合。您可以將此功能用於在輸入檔案中經常重複使用的設定,同時將個別設定保留在命令本身。
下列 aws ec2 run-instances 範例會結合使用輸入檔案和參數。我們提供 Amazon Machine Image (AMI) 的執行個體類型、金鑰名稱、安全群組和識別碼以供使用及擔任預設 AWS 區域。AMI ami-dfc39aef 是託管於 us-west-2 區域中的 64 位元 Amazon Linux 映像。如果使用不同的區域,您必須 找到要使用的正確 AMI ID
下列範例使用輸入檔案並搭配 --dry-run 參數,來執行命令的停用試轉,以確認您是否具有所需的許可,並已使用有效的值填入檔案。
以下範例接著會使用相同的輸入檔案,但使用 --no-dry-run 參數完整執行命令。