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

CloudFormation模板Join函数参数错误问题求助

排查并解决CloudFormation模板的Mapping错误

我来帮你搞定这个CloudFormation模板的问题,错误的根源其实有两个关键点,咱们一步步拆解解决:

错误原因分析

  1. Mapping不支持数组值:你的KensisAPIMap里用了YAML数组语法(- !Join [...]),但CloudFormation的Mapping要求每个键对应的值必须是字符串、数字这类简单类型,不能是数组。这个错误的数组结构被CloudFormation误解析,导致它判定你的!Join参数格式不符合要求,抛出了那个提示。
  2. 多余的!Join使用:比如us-west-2下的devOne,!Sub已经能直接生成目标字符串,完全没必要再用!Join包裹,反而增加了模板复杂度。

修正后的模板片段

下面是调整后的Mappings部分,修复了数组问题并简化了冗余的拼接:

Mappings:
  DataAPIMap:
    us-west-2:
      DevOne: "09lvg5kd1l/*/PUT/*/*/*/v2"
      TestOne: "default"
    eu-central-1:
      devTwo: "sixv6a77sg/*/PUT/*/*/*/v2"
      TestTwo: "default"
  KensisAPIMap:
    us-west-2:
      devOne: !Sub '${AWS::Region}:${AWS::AccountId}:we4x5ulbsl/*/PUT/s'
    eu-central-1:
      devTwo: !Join ["", ['us-west-2', !Ref KensisActId ,':we4x5ulbsl/*/PUT/s']]

额外验证点

  • 确认KensisActId是一个有效的栈参数或资源引用,否则会触发新的错误。
  • 现在你在策略中使用!FindInMap[KensisAPIMap, !Ref "AWS::Region", !Ref envname]时,返回的是符合要求的字符串,能正常匹配API Gateway URI。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 15:07:59