使用 AWS cli 描述 EC2 实例过滤实例名称
Describe EC2 instances Filter instance name using AWS cli
每次我 运行 Jenkins 作业时,我想使用 CLI 命令来过滤那些具有特定标签的实例并将其存储在本地文件中。
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。
尝试了多种组合,还是无法输出实例名。
这是一个可以输出各种参数的示例,包括标签值:
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
每次我 运行 Jenkins 作业时,我想使用 CLI 命令来过滤那些具有特定标签的实例并将其存储在本地文件中。
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。
尝试了多种组合,还是无法输出实例名。
这是一个可以输出各种参数的示例,包括标签值:
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