如何在aws cli describe-instances输出中获取标签的值?

时间:2019-01-04 23:28:01

标签: amazon-web-services amazon-ec2 aws-cli

我想获取实例ID和名称标签的值,这不起作用:

aws ec2 describe-instances --filters 'Name=tag:Name,Values=InstaneNameTagPrefix*' --query 'Reservations[*].Instances[*].{InstanceId:InstanceId,Tags:Tags.Key=Name}'

1 个答案:

答案 0 :(得分:1)

在完成this的JMESPath示例之后,我能够使其工作。试试这个,让我知道它在您的末端如何。

aws ec2 describe-instances --filters 'Name=tag:Name,Values=myDevEC2*' --query 'Reservations[*].Instances[*].{InstanceId:InstanceId,Tags:Tags[?Key == `Name`] | [0].Value}'

输出-

[
    [
        {
            "InstanceId": "i-xxxxxxxxxxxxxx",
            "Tags": "myDevEC2-123"
        }
    ]
]

由于Tags是一个数组,因此您需要过滤为仅“名称”对。之后,通过管道发送标签结果,然后选择Value

PS-您可能想将JSON输出第二个元素重命名为InstanceName而不是Tags:)