常用 AWS CLI 參數類型 - AWS Command Line Interface

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

常用 AWS CLI 參數類型

本節說明一些常見的參數類型和典型必要格式。

如果您對特定命令的參數格式有問題,請在命令名稱後輸入 help 來檢視說明。每個子命令的幫助包括選項的名稱和說明。該選項的參數類型在括弧中列出。如需檢視說明的詳細資訊,請參閱 取得 AWS CLI 相關協助

字串

字串參數可以包含 ASCII 字元集的英數字元、符號和空格。包含空格的字串必須用引號括起來。我們建議您不要使用標準空格字元以外的符號和空格,並觀察終端機的引用規則以防止意外結果。

某些字串參數可以接受檔案中的二進位資料。如需範例,請參閱二進位檔案

時間戳記

根據 ISO 8601 標準對時間戳記進行格式化。這些通常稱為「DateTime」或「Date」參數。

$ aws ec2 describe-spot-price-history --start-time 2014-10-13T19:00:00Z

可接受的格式包括:

  • YYYY-MM-DDThh:mm:ss.sssTZD (UTC),例如 2014-10-01T20:30:00.000Z

  • YYYY-MM-DDThh:mm:ss.sssTZD (包含偏移),例如 2014-10-01T12:30:00.000-08:00

  • YYYY-MM-DD,例如 2014-10-01

  • Unix 時間 (以秒為單位),例如 1412195400。這有時稱為 Unix Epoch 時間,表示為 1970 年 1 月 1 日午夜 (UTC 時間) 以來的秒數。

在預設情況下,AWS CLI 第 2 版會將所有回應 DateTime 值轉換為 ISO 8601 格式。

您可以透過使用 cli_timestamp_format 檔案設定來設定時間戳記格式。

列出

由空格分隔的一個或多個字串。如果任何字串項目包含空格,就必須使用引號括住該項目。遵守您的終端機的引號規則以防止意外結果。

$ aws ec2 describe-spot-price-history --instance-types m1.xlarge m1.medium

布林值

可開啟或關閉選項的二進位標記。例如,ec2 describe-spot-price-history 有一個布林值 --dry-run 參數,當指定時,可以在不實際執行查詢的情況下針對服務驗證查詢。

$ aws ec2 describe-spot-price-history --dry-run

輸出表明該命令的格式是否正確。此命令還包含一個 --no-dry-run 版本的參數,可用於明確指示該命令應該正常執行。包括它並不是必須的,因為這是預設行為。

整數

一個不帶正負號的整數。

$ aws ec2 describe-spot-price-history --max-items 5

Binary/Blob (二進位大型物件)和串流 Blob

在 AWS CLI 中,您可以在命令列上以字串直接傳遞二進位值。Blob 有兩種:

Blob

若要將值傳遞至類型為 blob 的參數,您必須使用 fileb:// 字首為包含二進位資料的本機檔案指定路徑。使用 fileb:// 字首參考的檔案一律視為原始未編碼的二進位。指定的路徑會解譯為相對於目前的工作目錄。例如,aws kms encrypt--plaintext 參數是一個 blob。

$ aws kms encrypt \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ --plaintext fileb://ExamplePlaintextFile \ --output text \ --query CiphertextBlob | base64 \ --decode > ExampleEncryptedFile
注意

為了向後相容性,您可以使用 file:// 字首。根據檔案設定 cli_binary_format--cli-binary-format 命令列選項,會使用兩種格式:

  • AWS CLI 第 2 版的預設值。如果設定值為 base64,使用 file:// 字首參考的檔案會視為 base64 編碼的文字。

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

如需詳細資訊,請參閱檔案設定 cli_binary_format--cli-binary-format 命令列選項。

串流 Blob

aws cloudsearchdomain upload-documents 等串流 blob 不使用字首。而是使用直接檔案路徑來格式化串流 Blob 參數。下列範例將直接檔案路徑 document-batch.json 用於 aws cloudsearchdomain upload-documents 命令:

$ aws cloudsearchdomain upload-documents \ --endpoint-url https://doc-my-domain.us-west-1.cloudsearch.amazonaws.com \ --content-type application/json \ --documents document-batch.json

Map

以 JSON 或使用 CLI 速記語法指定的鍵/值對組。以下 JSON 範例從名為 my-table 的 Amazon DynamoDB 表格中讀取一個項目,並附帶地圖參數 --key。該參數指定一個名為 id 的主金鑰,其在巢狀的 JSON 結構中具有數值 1

若要在命令列中使用更進階的 JSON,請考慮使用 jq 之類的命令列 JSON 處理器來建立 JSON 字串。如需 jq 的詳細資訊,請參閱 GitHub 上的 jq 儲存庫

$ aws dynamodb get-item --table-name my-table --key '{"id": {"N":"1"}}' { "Item": { "name": { "S": "John" }, "id": { "N": "1" } } }

文件

注意

速記語法與文件類型不相容。

文件類型用於傳送資料,無需將 JSON 嵌入字串中。文件類型使服務能夠提供任意架構,以便您使用更靈活的資料類型。

這允許在不需要轉義值的情況下傳送 JSON 資料。例如,不使用以下轉義的 JSON 輸入:

{"document": "{\"key\":true}"}

您可以使用以下文件類型:

{"document": {"key": true}}

文件類型的有效值

由於文件類型的靈活性,有多種有效的值類型。有效值包括以下項目:

字串
--option '"value"'
Number
--option 123 --option 123.456
布林值
--option true
Null
--option null
Array (陣列)
--option '["value1", "value2", "value3"]' --option '["value", 1, true, null, ["key1", 2.34], {"key2": "value2"}]'
物件
--option '{"key": "value"}' --option '{"key1": "value1", "key2": 123, "key3": true, "key4": null, "key5": ["value3", "value4"], "key6": {"value5": "value6"}'