AWS CloudFormation:"Parameter [subnetIds] is invalid"

AWS CloudFormation: "Parameter [subnetIds] is invalid"

我有一个 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,所以我的问题是如何将 subnetId 列表从配置文件传递到模板?

关于列表数据类型的文档中有here解释,例如:

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

An array of subnet IDs, such as subnet-123a351e, subnet-456b351e.

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

由于您使用的是 CodePipeline Template Configuration File,您将拥有类似以下内容:

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