如何用JMESPath将AWS EC2实例标签转为键值对字典?
解决AWS EC2实例标签转字典的JMESPath表达式
可行的命令
要将EC2实例的嵌套标签列表转为键值对字典,需使用JMESPath的from_entries()函数——它专门用于将{Key: "key", Value: "value"}格式的数组转换为字典。完整的AWS CLI命令如下:
aws ec2 describe-instances --query "Reservations[].Instances[].[InstanceId, InstanceType, KeyName, LaunchTime, State.Name, from_entries(Tags)]" --instance-ids i-123456789101123
输出效果
执行后会生成你期望的格式:
[ [ "i-123456789101123", "r5.8xlarge", "My_EMR", "2022-12-19T16:11:42.000Z", "running", { "tag-key-1": "tag-value-1", "tag-key-2": "tag-value-2", "tag-key-3": "tag-value-3", "project": "my-project" } ] ]
之前尝试的问题分析
map(Tags[].Key, Tags[].Value):JMESPath的map函数要求第一个参数是函数、第二个是数组,不能直接传入两个列表,语法不合法。{... Tags[].Key: Tags[].Value ...}:JMESPath的对象构造器不支持用动态列表作为键名,无法直接通过这种方式生成动态键值对,必须借助from_entries函数处理。
内容的提问来源于stack exchange,提问作者user1330974
相关产品推荐
相关产品推荐

