将子网列表作为参数传递给嵌套的 CloudFormation 模板失败并出现错误

Passing list of subnet as a parameter to nested CloudFormation Templates fails with an error

我正在尝试通过将子网 ID 和 VPC ID 列表作为参数传递给嵌套堆栈来启动堆栈。但是,堆栈失败并出现如下错误。任何人都可以建议如何在嵌套堆栈中传递列表。 父堆栈的参数部分 父堆栈的资源部分 错误

您的代码正在将 List<AWS::EC2::Subnet::Id> 类型的 Ref! PublicSubnetIds 传递到显然需要 AWS::EC2::Subnet::Id.

类型数据的字段中

到 select 列表的第 n 个元素使用内部函数 Fn::Select,即

SubnetId1: !Select [0, !Ref PublicSubnetIds]
SubnetId2: !Select [1, !Ref PublicSubnetIds]

同意@Alex Harvey 的观点。 Server-Stack 期待什么?子网 ID 列表或单个子网 ID?

查看您的父堆栈,您的 PublicSubnetIdsPrivateSubnetIds 被声明为列表。如果您打算将列表传递给 Server-Stack,则必须在 Server-Stack

Parameters 部分将它们声明为 List<AWS::EC2::Subnet::Id> 类型