AWS CLI コマンド詳細

型

オプションの値には型がある。

  • sring
  • 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 のように指定します。 また list タイプなので --filter "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 )はシングルクォーテーションで囲みます。
ダブルクォーテーションだとエラーになる場合があります。

$ 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 は `` で囲む