3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

AWS CLIでのオプションquery句の使い方

Posted at

aws cliで取得した結果について、その後に別言語の処理で一生懸命パース処理していませんか?
自分でも、以前はrubyで一生懸命パースしてました、しかし、欲しい値が決まっている場合には、queryで絞り込むのが効率的です。

query句を使用しない場合

aws cli でec2のdescribe-instancesをそのまま実行する例で

コマンド

aws ec2 describe-instances

結果例

{
    "Reservations": [
        {
            "Instances": [
                {
                    "InstanceId": "i-xxaeb3215cbbfxxxx",
                    "InstanceType": "t2.micro",
                    、、、、
                }
            ]
        },
        {
            "Instances": [
                {
                    "InstanceId": "i-xxefe9832fbbcxxxx",
                    "InstanceType": "t2.nano",
                    、、、、
                }
            ]
        },
        、、、、
    ]
}

のようなjsonの戻り値があるはずです。

query句を使用して出力結果を絞り込む

単一項目を取得したい

単一項目の時は簡単です。
例えば、InstanceIdを取得したい場合
InstanceIdは、Reservations->Instances->InstanceIdという構造の項目なので
コマンド

aws ec2 describe-instances --query 'Reservations[].Instances[].InstanceId'

結果

[
    "i-xxaeb3215cbbfxxxx",
    "i-xxefe9832fbbcxxxx",
    、、、、
]

複数項目

複数項目の時は、少し難しくなります
例えば、InstanceIdとInstanceTypeを取得したい場合

1次元配列複数で取得する

コマンド

aws ec2 describe-instances --query '[Reservations[].Instances[].InstanceId, Reservations[].Instances[].InstanceType]'

結果

[
    [
        "i-xxaeb3215cbbfxxxx",
        "i-xxefe9832fbbcxxxx",
        、、、、
    ],
    [
        "t2.micro",
        "t2.nano",
        、、、、
    ]
]

2次元配列で取得する

コマンド

aws ec2 describe-instances --query 'Reservations[].Instances[].[InstanceId, InstanceType]'

結果

[
    [
        "i-xxaeb3215cbbfxxxx",
        "t2.micro"
    ],
    [
        "i-xxefe9832fbbcxxxx",
        "t2.nano"
    ],
    、、、、
]

まとめ

今回はのように同じ深さの項目ではない、違う深さの項目を取得する場合にはもう少し難易度があがりますが、まぁ、このような感じです。
では、皆様頑張りましょう

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?