You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Step Functions调用Route53 API时参数数组格式适配问题

解决Route53调用中JMESPath返回数组转单个值的问题

核心问题出在JMESPath过滤表达式返回数组类型,但Route53的ListResourceRecordSets API要求HostedZoneId必须是单个字符串值,而EC2的DescribeNetworkInterfaces刚好需要数组类型参数,所以得针对两个API用不同的JMESPath处理逻辑:

  • 针对EC2的DescribeNetworkInterfaces:继续使用原表达式[?(@.name==networkInterfaceId)],保持数组输出适配接口要求。
  • 针对Route53的ListResourceRecordSets:修改JMESPath表达式,从过滤后的数组中提取单个值,把原来的[?(@.Key==HOSTZONEID)]替换为:
    [?(@.Key==HOSTZONEID)].Value | [0]
    

表达式说明:

  1. [?(@.Key==HOSTZONEID)]:过滤出Key为HOSTZONEID的条目
  2. .Value:提取该条目的Value字段,此时结果是包含单个元素的数组(比如["Z1234567890ABC"])
  3. | [0]:通过管道操作符结合索引,取出数组的第一个元素,最终得到字符串类型的HostedZoneId(比如"Z1234567890ABC")

这样处理后,传给Route53的参数就是符合要求的单个值,不会再出现“未找到对应托管区ID”的报错,同时EC2的调用也能继续正常工作。

内容的提问来源于stack exchange,提问作者mreferre

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 21:35:16