AWS CLI で短縮構文を使用する - AWS Command Line Interface

AWS CLI で短縮構文を使用する

AWS Command Line Interface (AWS CLI) は、JSON 形式の多くのオプションパラメータを受け入れることができます。ただし、大きな JSON リストや構造体をコマンドラインに入力するのは手間がかかる場合があります。これを簡単にするために、AWS CLI は短縮構文もサポートしているため、完全な JSON 形式を使用するより、オプションパラメータを簡単に表現できます。

構造パラメータ

AWS CLI の短縮構文を利用すると、ユーザーがフラットなパラメータ (ネストされていない構造) に入力するのが容易になります。形式は、キーと値のペアのカンマ区切りリストです。短縮構文は文字列であるため、必ず、お使いのターミナルに適した引用とエスケープの規則を使用してください。

Linux or macOS
--option key1=value1,key2=value2,key3=value3
PowerShell
--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

AWS Command Line Interface を使用した短縮構文の使用

リストフォーム内の入力パラメータは、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"} ]'