通用 Amazon CLI 参数类型 - Amazon Command Line Interface
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文档仅适用于 Amazon CLI 版本 1。有关 Amazon CLI 版本 2 的相关文档,请参阅版本 2 用户指南

通用 Amazon CLI 参数类型

本节介绍一些通用参数类型以及典型的所需格式。

如果您不知道如何设置特定命令的参数格式,请在命令名称后输入 help 来查看帮助。每个子命令的帮助均包括一个选项的名称和描述。该选项的参数类型在括号中列出。有关查看帮助的更多信息,请参阅 获取有关 Amazon CLI 的帮助

String

字符串参数可以包含 ASCII 字符集中的字母数字字符、符号和空格。包含空格的字符串必须用引号引起来。建议您不要使用标准空格字符以外的符号或空格,并遵循终端的引用规则,以防止出现意外结果。

一些字符串参数可接受来自文件的二进制数据。有关示例,请参阅二进制文件

Timestamp

时间戳根据 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 纪元时间,表示自 1970 年 1 月 1 日午夜 (UTC) 以来经历的秒数。

您可以使用 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

二进制/Blob(二进制大型对象)和流式传输 Blob

在 Amazon 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

流式 Blob

aws cloudsearchdomain upload-documents 等流式 Blob 不使用前缀。相反,流式传输 blob 参数使用直接文件路径进行格式化。以下示例对于 aws cloudsearchdomain upload-documents 命令使用直接文件路径 document-batch.json

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

映射

使用 JSON 或 CLI 的速记语法指定的一系列密钥值对。以下 JSON 示例使用 map 参数 --key 从名为 my-table 的 Amazon DynamoDB 表中读取项目。此参数在嵌套的 JSON 结构中指定名为 id 且数值为 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"'
数字
--option 123 --option 123.456
布尔值
--option true
Null
--option null
数组
--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"}'