考虑我想查询 aws cli 以获取具有标记的实例列表:
角色=我的角色
我只想要 InstanceId 和那个特定的标签,所以我发出:
~ aws ec2 describe-instances \
--filter "Name=tag:role,Values=myrole" \
--query "Reservations[*].Instances[*].[InstanceId,Tags[?Key=='myId'].Value]"
答复将是:
[
[
[
"i-111111111111111111",
[]
]
],
[
[
"i-222222222222222222",
[
"091117"
]
]
],
[
[
"i-333333333333333333",
[]
]
]
]
我如何修改查询以仅获取此标记值为非空字符串的对象,即:
[
[
[
"i-222222222222222222",
[
"091117"
]
]
]
]
最佳答案
您的命令中唯一缺少的部分是确保标签 myId
存在并且具有非空值。该过滤器必须应用于选定的实例 ( Instances[*]
)。 another answer on Stack Overflow 中介绍了如何对此进行过滤。并将其集成到您的命令中非常简单:
aws ec2 describe-instances \
--filter "Name=tag:role,Values=myrole" \
--query "Reservations[*].Instances[?Tags[?Key=='myId' && Value!='']].[InstanceId,Tags[?Key=='myId'].Value]"
关于amazon-web-services - aws-cli - 使用 --query 和 --filter 过滤输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46160592/