我正在尝试过滤我的输出for describe-instances,显示以下内容:
- instanceId
- 设备+音量
- 标签[Key == Name]
我的表达是
aws ec2 describe-instances --filters Name=instance-state-name,Values=running --query "Reservations[*].Instances[].[InstanceId, BlockDeviceMappings[*].{DeviceName:DeviceName,VolumeName:Ebs.VolumeId}, Tags[*]]"
但是这给了我所有标签显示的输出。如何将其更改为“名称”标签?
答案 0 :(得分:4)
您正在寻找JMESPath Filter Expression。试试这个:
aws ec2 describe-instances \
--filters Name=instance-state-name,Values=running \
--query 'Reservations[*].Instances[].[InstanceId, BlockDeviceMappings[*].{DeviceName:DeviceName,VolumeName:Ebs.VolumeId}, Tags[?Key==`Name`]]'
答案 1 :(得分:0)
这对我有用
aws ec2 describe-instances --filters "Name=instance-state-name,Values=running" --query 'Reservations[].Instances[].[ [Tags[?Key==`Name`].Value][0][0],[Tags[?Key==`tag_component_name`].Value][0][0] ]' --output json --profile myprofile --region us-east-1
确保更改--output,--profile和--region参数
答案 2 :(得分:0)
要检查具有特定标签的实例。
aws --profile account1 ec2 describe-instances \
--filters "Name=tag-key,Values=Product" "Name=tag-value,Values=test" \
--region ap-southeast-1 --output table