コマンド詳細 | AWS CLI
型
オプションの値には型がある。
- string
- int
- boolean
- list
list 型以外は通常のプログラム言語から想像できるので説明を省く。
list
list は空白で区切って指定する。
$ aws ec2 describe-instance-status \
--instance-ids i-xxxxxxxxxxxxxxxx i-xxxxxxxxxxxxxxxx
# ドキュメントではダブルクォーテーションで囲む方法を推奨
$ aws ec2 describe-instance-status \
--instance-ids "i-xxxxxxxxxxxxxxxx" "i-xxxxxxxxxxxxxxxx"
オプション
filter オプション
filter オプションは list 型。
filter の値は Name=string,Values=string,string のように指定します(Values に複数の値を持たせる場合はカンマ区切り)。
オプション名自体は --filters(複数形)で、list タイプなので --filters "Name=string,Values=string,string" "Name=string,Values=string,string" のようにスペース区切りで複数の条件を指定できます。
$ aws ec2 describe-instances \
--filters Name=instance-type,Values=t2.micro,t3.micro Name=availability-zone,Values=us-east-2c
# ダブルクォーテーションで囲む
$ aws ec2 describe-instances \
--filters "Name=instance-type,Values=t2.micro,t3.micro" "Name=availability-zone,Values=us-east-2c"
query オプション
–query (string)
A JMESPath query to use in filtering the response data.
query オプションの値( string )は、bash/zsh などUnix系シェルではシングルクォーテーションで囲むのが安全です。
JMESPathのクエリにはバッククォートやダブルクォーテーションが含まれることが多く、ダブルクォーテーションで囲むとシェルに解釈されてエラーになる場合があります(これはAWS CLI自体の仕様ではなく、シェル側の引用符解釈に起因します)。なお、Windowsのコマンドプロンプトではダブルクォーテーションを外側に使い、内部の " を \" でエスケープするのが一般的です。
$ aws ec2 describe-instances \
--filters "Name=instance-state-name,Values=running" \
--query 'Reservations[*].Instances[*].Tags[*]'
[
[
[
{
"Key": "Service",
"Value": "xxxxx"
},
{
"Key": "Name",
"Value": "abcde"
}
]
],
[
[
{
"Key": "Service",
"Value": "xxxxx"
},
{
"Key": "Name",
"Value": "fghij"
}
]
]
]
$ aws ec2 describe-instances \
--filters "Name=instance-state-name,Values=running" \
--query 'Reservations[*].Instances[*].Tags[?Key==`Name`]'
[
[
[
{
"Key": "Name",
"Value": "abcde"
}
]
],
[
[
{
"Key": "Name",
"Value": "fghij"
}
]
]
]
条件は?で始める。 Name は `` で囲む