首页 > 解决方案 > AWS CloudFormation:“参数 [subnetIds] 无效”

问题描述

我有一个 AWS CodePipeline,可以使用 YAML 模板和模板配置 JSON 文件在 CloudFormation 中部署堆栈。

相关模板片段:

AWSTemplateFormatVersion: '2010-09-09'
...
Parameters:
  subnetIds:
    Type: List<AWS::EC2::Subnet::Id>
...

相关配置文件片段:

{
    "Parameters": {
      ...
      "subnetIds": [
        "subnet-a",
        "subnet-b",
        "subnet-c"
      ]
    },
    ...
}

由于某种原因,部署阶段(CloudFormation)一直失败Parameter [subnetIds] is invalid,所以我的问题是如何将子网ID列表从配置文件传递给模板?

标签: jsonamazon-web-servicesamazon-cloudformationaws-codepipeline

解决方案


有关列表数据类型的文档中对此进行了解释,例如:

List<AWS::EC2::Subnet::Id>

一组子网 ID,例如subnet-123a351e, subnet-456b351e.

也就是说,ListCloudFormation 中的所有类型也是逗号分隔的字符串。

由于您使用的是 CodePipeline模板配置文件,因此您将拥有如下内容:

{
  "Parameters": {
    "subnetIds": "subnet-a,subnet-b,subnet-c"
  }
}

推荐阅读