首页 > 解决方案 > 如何在 aws cli describe-instances 输出中获取标签的值?

问题描述

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

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

标签: amazon-web-servicesamazon-ec2aws-cli

解决方案


通过 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


推荐阅读