如何使用JMESPath查询AWS Route53私有托管区ID?
解决Route53私有托管区ID的JMESPath查询问题
你的JMESPath查询逻辑层级错误,导致无法正确提取目标ID。
错误原因分析
你之前的写法是先遍历所有HostedZones并取出Config子对象,再在Config数组中过滤PrivateZone为true的项,但Id属性属于HostedZone顶层对象,并非Config的子属性,因此这种写法根本无法定位到Id,最终返回空数组。
正确的JMESPath查询命令
直接在HostedZones数组层级进行过滤,再提取符合条件的Id即可,有两种等价写法:
写法一(推荐)
aws route53 list-hosted-zones \ --query 'HostedZones[?Config.PrivateZone == `true`].Id'
写法二(管道语法)
aws route53 list-hosted-zones \ --query 'HostedZones[] | [?Config.PrivateZone == `true`].Id'
执行结果
运行上述命令后,会返回你期望的结果:
[ "/hostedzone/Z062450333HHCLR5EM9XC" ]
内容的提问来源于stack exchange,提问作者OPP
相关产品推荐
相关产品推荐

