命令列選項 - AWS Command Line Interface

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

命令列選項

在 AWS CLI 中,命令列選項是全局參數,可用來覆寫預設組態設定、任何對應的設定檔設定或該單一命令的環境變數設定。您無法使用命令列選項來直接指定憑證,但可指定要使用的描述檔。

如何使用命令列選項

大多數命令列選項都是簡單的字串,例如下列範例中的設定檔名稱 profile1

$ aws s3 ls --profile profile1 example-bucket-1 example-bucket-2 ...

每個接受引數的選項需要有空格或等號 (=) 來隔開引數與選項名稱。如果引數值是包含空格的字串,則您必須使用引號括住引數。如需關於參數類型和參數格式的詳細資訊,請參閱 為 AWS CLI 指定參數值

AWS CLI 支援的全局命令列選項

在 AWS CLI 中,您可以使用下列命令列選項來覆寫預設組態設定、任何對應的設定檔設定或該單一命令的環境變數設定。

--ca-bundle <string>

指定在驗證 SSL 憑證時使用的憑證授權機構 (CA) 憑證套件。

如果已定義,此選項會覆寫設定檔設定 ca_bundle 的數值及 AWS_CA_BUNDLE 環境變數。

--cli-auto-prompt

啟用單一命令的自動提示模式。如下列範例所示,您隨時都能指定它。

$ aws --cli-auto-prompt $ aws dynamodb --cli-auto-prompt $ aws dynamodb describe-table --cli-auto-prompt

此選項會覆寫 aws_cli_auto_prompt 環境變數及 cli_auto_prompt 設定檔設定。

如需 AWS CLI 第 2 版自動提示功能的相關資訊,請參閱 讓 AWS CLI 提示您輸入命令提示

--cli-binary-format

指定 AWS CLI 第 2 版如何解譯二進位輸入參數。它可能是以下其中一個數值:

  • base64 – 這是預設值。以二進位大型物件 (BLOB) 輸入的輸入參數接受 base64 編碼的字串。若要傳遞實際的二進位內容,請將內容放置在檔案中,並在參數值中使用 fileb:// 前綴,以提供檔案路徑和名稱。若要傳遞包含在檔案中的 base64 編碼文字,請在參數值中使用 file:// 前綴,以提供檔案路徑和名稱。

  • raw-in-base64-out — AWS CLI 第 1 版的預設值。如果設定的值為 raw-in-base64-out,則會將使用 file:// 字首參照的檔案讀取為文字,然後 AWS CLI 嘗試將其編碼為二進位。

這會覆寫 cli_binary_format 檔案組態設定。

$ aws lambda invoke \ --cli-binary-format raw-in-base64-out \ --function-name my-function \ --invocation-type Event \ --payload '{ "name": "Bob" }' \ response.json

如果您使用 fileb:// 前綴表示法在檔案中參照二進位值,AWS CLI 一律預期檔案包含原始二進位內容,而且不會嘗試轉換該數值。

如果您使用 file:// 前綴表示法在檔案中參照二進位值,AWS CLI 會根據目前的 cli_binary_format 設定來處理檔案。如果設定值為 base64 (未明確設定時的預設值),AWS CLI 預期檔案會包含 base64 編碼文字。如果該設定值為 raw-in-base64-out,AWS CLI 預期檔案會包含原始二進位內容。

--cli-connect-timeout <integer>

指定通訊端連線時間上限 (以秒為單位)。如果數值設為零 (0),通訊端連線會無限期等待 (凍結) 且不逾時。

--cli-read-timeout <integer>

指定通訊端讀取時間上限 (以秒為單位)。如果數值設為零 (0),通訊端讀取會無限期等待 (凍結) 且不逾時。

--color <string>

指定支援彩色輸出。有效值為 onoffauto。預設值為 auto

--debug

啟用偵錯記錄的布林參數。依預設,AWS CLI 會在命令輸出提供有關命令結果的任何成功或失敗的清除資訊。此 --debug 選項會提供完整的 Python 記錄。這包括命令操作的額外 stderr 診斷資訊,在分析解決命令為什麼產生意外結果時很有用。為了方便檢視偵錯記錄,我們建議將記錄傳送至檔案,以便更輕鬆地搜尋資訊。您可以使用下列其中一種來執行這項作業。

若要傳送 stderr 診斷資訊,請附加 2> debug.txt,其中 debug.txt 是您想要用於偵錯檔案的名稱:

$ aws servicename commandname options --debug 2> debug.txt

若要同時傳送輸出及 stderr 診斷資訊,請附加 &> debug.txt,其中 debug.txt 是您想要用於偵錯檔案的名稱:

$ aws servicename commandname options --debug &> debug.txt
--endpoint-url <string>

指定請求送往的 URL。對大多數命令而言,AWS CLI 會依據選取的服務及指定的 AWS 區域,自動決定 URL。但部分命令需要您指定帳戶專屬的 URL。您也可以設定一些 AWS 服務來直接在私有 VPC 內託管端點,而您可能需要在稍後指定該 VPC。

下列命令範例使用自訂的 Amazon S3 端點 URL。

$ aws s3 ls --endpoint-url http://localhost:4567

端點組態設定位於多個位置,例如系統或使用者環境變數、本機 AWS 組態檔案,或在命令列上明確宣告為參數。AWS CLI 端點組態設定的優先順序如下:

  1. --endpoint-url 命令列選項。

  2. 如果啟用,則 AWS_IGNORE_CONFIGURED_ENDPOINT_URLS 全域端點環境變數或設定檔設定 ignore_configure_endpoint_urls 將忽略自訂端點。

  3. 服務特定環境變數 AWS_ENDPOINT_URL_<SERVICE> 所提供的值,例如 AWS_ENDPOINT_URL_DYNAMODB

  4. AWS_USE_DUALSTACK_ENDPOINTAWS_USE_FIPS_ENDPOINTAWS_ENDPOINT_URL 環境變數所提供的值。

  5. 共用 config 檔案 services 區段內的 endpoint_url 設定所提供的服務特定端點值。

  6. 共用 config 檔案的 profile 中的 endpoint_url 設定所提供的值。

  7. use_dualstack_endpointuse_fips_endpointendpoint_url 設定。

  8. 最後會使用相應 AWS 服務 的任何預設端點 URL。如需每個區域可用的標準服務端點清單,請參閱 Amazon Web Services 一般參考 中的 AWS 區域與端點

--no-cli-auto-prompt

停用單一命令的自動提示模式。

$ aws dynamodb describe-table --table-name Table1 --no-cli-auto-prompt

此選項會覆寫 aws_cli_auto_prompt 環境變數及 cli_auto_prompt 設定檔設定。

如需 AWS CLI 第 2 版自動提示功能的相關資訊,請參閱 讓 AWS CLI 提示您輸入命令提示

--no-cli-pager

為命令停用輸出之分頁程式的布林參數。

--no-paginate

停用 AWS CLI 自動進行之多個呼叫的布林參數,這些呼叫是為了接收會建立輸出分頁的所有命令結果。這表示只會顯示輸出的第一頁。

--no-sign-request

停用簽署對 AWS 服務端點的 HTTP 請求的布林參數。這可防止載入憑證。

--no-verify-ssl

AWS CLI 與 AWS 服務通訊時預設會使用 SSL。對於每個 SSL 連線和呼叫,AWS CLI 都會驗證 SSL 憑證。使用此選項會覆寫驗證 SSL 憑證的預設行為。

警告

此選項是最佳作法。如果您使用 --no-verify-ssl,您的用戶端和 AWS 服務之間的流量將不再受到保護。這意味著您的流量存在安全風險,並且容易受到攔截式攻擊。如果您在憑證上遇到問題,最好改為解決這些問題。如需憑證疑難排解步驟,請參閱 SSL 憑證錯誤

--output <string>

指定要用於此命令的輸出格式。您可以指定下列任何數值:

  • json – 輸出的格式為 JSON 字串。

  • yaml – 輸出的格式為 YAML 字串。

  • yaml-stream – 輸出採用串流方式且格式為 YAML 字串。串流可加速處理大型資料類型。

  • text – 輸出的格式是多行以 Tab 分隔的字串值。這對於將輸出傳遞給文字處理器 (如 grepsedawk) 非常有用。

  • table – 輸出的格式為使用字元 +|- 形成儲存格框線的表格。它通常以「方便人類使用」的格式來呈現資訊,這種格式比其他格式更容易閱讀,但在編寫程式方面較不有用。

--profile <string>

指定要用於此命令的具名描述檔。若需設置額外的具名描述檔,您可以使用 aws configure 命令搭配 --profile 選項。

$ aws configure --profile <profilename>
--query <string>

指定 JMESPath 查詢以用於篩選回應資料。如需詳細資訊,請參閱 濾波器 AWS CLI 輸出

--region <string>

指定此命令的 AWS 請求傳送到的 AWS 區域。如需您可指定之所有區域和端點的清單,請參閱 Amazon Web Services 一般參考 中的 AWS 區域與端點

--version

顯示正在執行的 AWS CLI 計畫目前版本的布林參數。

命令列選項的常見用途

命令列選項的常見用途包括在多個 AWS 區域中查看您的資源,或是於編寫指令碼時變更輸出格式以利易讀性與使用便利。在下列範例中,我們執行 describe-instances 命令,直到我們找到執行個體所在的區域。

$ aws ec2 describe-instances --output table --region us-west-1 ------------------- |DescribeInstances| +-----------------+ $ aws ec2 describe-instances --output table --region us-west-2 ------------------------------------------------------------------------------ | DescribeInstances | +----------------------------------------------------------------------------+ || Reservations || |+-------------------------------------+------------------------------------+| || OwnerId | 012345678901 || || ReservationId | r-abcdefgh || |+-------------------------------------+------------------------------------+| ||| Instances ||| ||+------------------------+-----------------------------------------------+|| ||| AmiLaunchIndex | 0 ||| ||| Architecture | x86_64 ||| ...