Using shorthand syntax in the AWS CLI
AWS Command Line Interface (AWS CLI) は、JSON 形式の多くのオプションパラメータを受け入れることができます。ただし、大きな JSON リストや構造体をコマンドラインに入力するのは手間がかかる場合があります。これを簡単にするために、AWS CLI は短縮構文もサポートしているため、完全な JSON 形式を使用するより、オプションパラメータを簡単に表現できます。
キーと値のペアでパラメータを構造化する
AWS CLI の短縮構文を利用すると、ユーザーがフラットなパラメータ (ネストされていない構造) に入力するのが容易になります。形式は、キーと値のペアのカンマ区切りリストです。短縮構文は文字列であるため、必ず、お使いのターミナルに適した引用とエスケープの規則を使用してください。
それぞれのカンマ区切りのキーと値のペアの間に空白があってはいけません。以下に、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 ファイル形式ルールが適用されます。次の例では、キーと値のペアを使用してファイルを読み込む方法を示しています。
次の例では、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 または省略形の 2 つの方法で指定できます。AWS CLI の短縮構文は、数値、文字列、またはネストされていない構造体が含まれるリストを簡単に渡せるように設計されています。
基本的な形式を次に示します。ここで、リストの値は、1 つのスペースで区切られます。
--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"} ]'