AWS CLIでのオプションquery句の使い方
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"
],
、、、、
]
まとめ
今回はのように同じ深さの項目ではない、違う深さの項目を取得する場合にはもう少し難易度があがりますが、まぁ、このような感じです。
では、皆様頑張りましょう
Author And Source
この問題について(AWS CLIでのオプションquery句の使い方), 我々は、より多くの情報をここで見つけました https://qiita.com/hirotaka-tajiri/items/3405fe18be319557c7e7著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .