要件
cliにてElastic IpをTagのName順に一覧取得したい
状況
以下のコマンドにてElastic Ip情報を得られる
aws ec2 describe-addresses --output json
出力結果
{ "Addresses": [ { "Domain": "vpc", "PublicIpv4Pool": "amazon", "Tags": [ { "Value": "test4", "Key": "Name" } ], "PublicIp": "***.115***.***", "AllocationId": "eipalloc-***", "NetworkBorderGroup": "ap-northeast-1" }, { "Domain": "vpc", "PublicIpv4Pool": "amazon", "Tags": [ { "Value": "test2", "Key": "Name" } ], "PublicIp": "3.***.***.***", "AllocationId": "eipalloc-***", "NetworkBorderGroup": "ap-northeast-1" }, { "Domain": "vpc", "PublicIpv4Pool": "amazon", "Tags": [ { "Value": "test3", "Key": "Name" } ], "PublicIp": "54.***.***.***", "AllocationId": "eipalloc-***", "NetworkBorderGroup": "ap-northeast-1" } ] }
問題点
以下のシェルスクリプトで--queryのsort_byでTags:Tags[].Value順に
AllocationId一覧を出力しようとしたところエラーとなりました。
Tags:Tags[].Valueの代わりにPublicIpを指定したところ正常に出力されたので
Tags:Tags[].Valueの指定が悪いと思うのですがどのような形にすべきでしょうか?
そもそも、--queryによるsort_by()が公式ドキュメントではわかりにくく困っております。
REGION=`curl http://169.254.169.254/latest/dynamic/instance-identity/document | grep region | awk -F\" '{print $4}'` aws ec2 describe-addresses --region=$REGION --query 'sort_by(Addresses[].{Id:AllocationId,Tags:Tags[].Value},&Tags)'
エラー内容
In function sort_by(), invalid type for value: {u'Id': 'eipalloc-***', u'Tags': ['test4']}, expected one of: ['string', 'number'], received: "array"
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。