AWSEC2の名前のみを取得したい場合は、Tags.Nameを取得しないといけない。
InstanceNameのような都合のよいものはなく、Nameタグになっているので工夫しないといけない。
1 |
aws ec2 describe-instances | jq -r '.[][].Instances[].Tags[]' |
1 2 3 4 5 6 7 8 9 10 11 12 |
{ "Key": "Name", "Value": "Server1" } { "Key": "Name", "Value": "Server2" } { "Key": "Kind", "Value": "EC2" } |
selectを使って、キー名.KeyがNameの場合のみをフィルタすることができる
1 |
aws ec2 describe-instances | jq -r '.[][].Instances[].Tags[] | select( .Key == "Name")' |
このように出力される
1 2 3 4 5 6 7 8 |
{ "Key": "Name", "Value": "Server1" } { "Key": "Name", "Value": "Server2" } |
ちなみに値のみを出力したい場合は|で区切ったあとに、.Valueを指定すればOK
1 |
aws ec2 describe-instances | jq -r '.[][].Instances[].Tags[] | select( .Key == "Name") | .Value' |
1 2 |
Server1 Server2 |