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

时间:2019-03-14 04:26:26

标签: amazon-cloudformation amazon-vpc subnet

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

2 个答案:

答案 0 :(得分:2)

同意@Alex Harvey。 Server-Stack期望什么?子网ID列表还是单个子网ID?

查看您的父堆栈,您的PublicSubnetIdsPrivateSubnetIds被声明为列表。如果您打算将列表传递到Server-Stack,则必须在List<AWS::EC2::Subnet::Id>的{​​{1}}部分中将它们声明为Parameters类型

答案 1 :(得分:1)

您的代码正在将Ref! PublicSubnetIds类型的List<AWS::EC2::Subnet::Id>传递到显然需要AWS::EC2::Subnet::Id类型数据的字段中。

要选择列表的第n个元素,请使用内部函数Fn::Select,即

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