我希望使用CLI命令过滤那些具有特定标记的实例,并在每次运行Jenkins作业时将其存储在本地文件中。
aws ec2 describe-instances --filters "Name=tag:Hello,Values=exclude" --output table --query Reservations[*].Instances[*].{Id.InstanceId, State:State.name,Contact:tag:OwnerContact, InstanceProfileName:InstanceProfileName} > Book.txt
我成功地获取了文本文件中的输出,但是对于我的两个参数InstanceProfileName和OwnerContact,我得到输出为None。
我尝试了各种组合,仍然无法输出实例名称。
答案 0 :(得分:2)
这是一个可以输出各种参数的示例,包括标记值:
aws ec2 describe-instances --query "Reservations[*].Instances[*].{Id:InstanceId,State:State.Name,Profile:IamInstanceProfile.Arn,Name:Tags[?Key=='Name'].Value}"
要使语法正确,请一次尝试一个元素。从:
开始aws ec2 describe-instances --query "Reservations[*].Instances[*]"
然后添加参数,例如:
aws ec2 describe-instances --query "Reservations[*].Instances[*].Tags"
然后尝试您想要的每个值。最后,在一个大命令中将它们串起来。
要了解--query
选项,请查看:JMESPath Tutorial