使用 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