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

如何在CloudFormation模板中正确使用AWS SSM的StringList配置Lambda子网?

解决CloudFormation配置Lambda子网时的SSM StringList解析错误

问题背景

在AWS SSM中存储了StringList类型的子网参数(格式如s1,s2),尝试通过CloudFormation模板为Lambda配置这些子网以实现PostgreSQL数据写入功能时,使用!Split [',','{{resolve:ssm:/testing/vpc/subnets:1}}']设置SubnetIds部署失败,报错:

Resource handler returned message: "1 validation error detected: Value '[subnet-XXXXX, subnet-XXXXXX]' at 'vpcConfig.subnetIds' failed to satisfy constraint"

错误原因

SSM的StringList类型参数,经CloudFormation的{{resolve:ssm:...}}解析后本身就是列表格式,并非逗号分隔的字符串。额外添加!Split操作,会把列表的字符串表示(比如"[subnet-xxx, subnet-yyy]")当作单个字符串按逗号分割,最终得到的元素包含方括号和空格,不符合LambdaSubnetIds对纯子网ID字符串列表的格式要求。

修复方案

直接使用解析后的SSM参数作为SubnetIds的值,无需!Split处理:

Resources:
  TargetLambdaFunction:
    Type: AWS::Lambda::Function
    Properties:
      # 填写Lambda其他必要属性(如代码包、执行角色等)
      VpcConfig:
        SubnetIds: '{{resolve:ssm:/testing/vpc/subnets:1}}'
        SecurityGroupIds:
          # 配置Lambda访问PostgreSQL所需的安全组ID

这样配置后,CloudFormation会自动将SSM中的StringList参数转换为合规的子网ID列表,直接传递给Lambda的VPC配置,即可解决该验证错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 21:54:14