AWS Command Line Interface(AWS CLI)可以接受 JSON 格式的许多选项。但是,在命令行上输入较大的 JSON 列表或结构会比较繁琐。为了简化此过程,AWS CLI 还支持一种速记语法,允许采用比完整 JSON 格式更简单的方式表示选项参数。
使用键值对组织参数。
通过 AWS CLI 中的速记语法,用户更容易输入平面(非嵌套结构)参数。格式采用以逗号分隔的键值对列表。请务必使用适用于终端的引用以及转义规则,因为速记语法是字符串。
--option
key1=value1,key2=value2,key3=value3
等同于以下 JSON 格式的示例。
--option
'{"key1":"value1","key2":"value2","key3":"value3"}'
各逗号分隔的键值对之间不能有空格。下面的示例 Amazon DynamoDB update-table
命令包含采用速记语法指定的 --provisioned-throughput
选项。
$
aws dynamodb update-table \ --provisioned-throughput
ReadCapacityUnits=15,WriteCapacityUnits=10
\ --table-name MyDDBTable
该示例等同于以下 JSON 格式的示例。
$
aws dynamodb update-table \ --provisioned-throughput
'{"ReadCapacityUnits":15,"WriteCapacityUnits":10}'
\ --table-name MyDDBTable
将文件作为速记语法值进行加载
当值较大或较复杂时,通常更易以值的形式加载。要将文件作为速记语法值进行加载,格式将略有变化。使用 @=
运算符代替 =
运算符,而不使用 key=value
。@=
告知 AWS CLI,值应作为文件路径而不是字符串进行读取。在使用以速记语法加载文件时,常见的 AWS CLI 文件格式设置规则将适用。以下示例显示一个键值对,该键值对为其值加载文件。
--option
key@=file://template.txt
以下示例演示如何为 aws
rolesanywhere create-trust-anchor
命令加载证书文件。
$
aws rolesanywhere create-trust-anchor --name TrustAnchor \ --source sourceData={
x509CertificateData@=file://root-ca.crt
},sourceType="CERTIFICATE_BUNDLE" \ --enabled
将速记语法与 AWS CLI 结合使用
您可以使用两种方法以列表形式指定输入参数:JSON 或速记。使用 AWS CLI 速记语法,可更方便地传入含有数字、字符串或非嵌套结构的列表。
下面显示了基本格式,列表中的值用单个空格分隔。
--option
value1 value2 value3
该示例等同于以下 JSON 格式的示例。
--option
'[value1,value2,value3]'
如前所述,您可以用速记语法指定数字列表、字符串列表或非嵌套结构的列表。以下是用于 Amazon Elastic Compute Cloud(Amazon EC2)的 stop-instances
命令示例,其中,--instance-ids
选项的输入参数(字符串列表)采用速记语法指定。
$
aws ec2 stop-instances \ --instance-ids
i-1486157a i-1286157c i-ec3a7e87
该示例等同于以下 JSON 格式的示例。
$
aws ec2 stop-instances \ --instance-ids
'["i-1486157a","i-1286157c","i-ec3a7e87"]'
下面的示例显示 Amazon EC2 create-tags
命令,该命令针对 --tags
选项使用非嵌套结构的列表。--resources
选项指定要添加标签的实例的 ID。
$
aws ec2 create-tags \ --resources i-1286157c \ --tags
Key=My1stTag,Value=Value1 Key=My2ndTag,Value=Value2 Key=My3rdTag,Value=Value3
该示例等同于以下 JSON 格式的示例。JSON 参数分多行编写以便于阅读。
$
aws ec2 create-tags \ --resources i-1286157c \ --tags
'[ {"Key": "My1stTag", "Value": "Value1"}, {"Key": "My2ndTag", "Value": "Value2"}, {"Key": "My3rdTag", "Value": "Value3"} ]'