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

如何在CloudFormation中引用AWS SSM参数?Lambda配置报错求助

问题分析与解决方案

错误原因很明确:你在SubnetIds下额外加了-,导致!Split返回的子网数组被嵌套进了另一个数组里,最终结构变成SubnetIds: [ [subnet-id-1, subnet-id-2] ],而CloudFormation要求SubnetIds的每个元素必须是字符串类型,所以触发了类型不匹配的报错。

正确写法分两种情况:

情况1:SSM参数为String类型(值是逗号分隔的子网ID)

直接将!Split的结果赋值给SubnetIds,不要加前面的-:

VpcConfig:
  SecurityGroupIds:        
    - !Sub '{{resolve:ssm:platform_security_group:3}}'
  SubnetIds: !Split [",", !Sub '{{resolve:ssm:platform_subnets:3}}']

情况2:SSM参数为StringList类型

StringList类型的SSM参数被解析后本身就是数组格式,无需使用!Split,直接引用即可:

VpcConfig:
  SecurityGroupIds:        
    - !Sub '{{resolve:ssm:platform_security_group:3}}'
  SubnetIds: !Resolve [ssm:platform_subnets:3]

验证逻辑

  • SecurityGroupIds是数组类型,你用-加单个解析后的字符串是正确的,因为这是数组的单个元素。
  • SubnetIds本身需要的是字符串数组,所以直接把拆分/解析后的数组赋值给它即可,不需要额外嵌套一层数组。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 04:52:33