Передача списка подсети в качестве параметра для вложенных шаблонов CloudFormation завершается с ошибкой - PullRequest
0 голосов
/ 14 марта 2019

Я пытаюсь запустить стек, передавая список идентификаторов подсетей и идентификаторов VPC в качестве параметра во вложенный стек.Однако стек завершается с ошибкой, как показано ниже.Кто-нибудь может подсказать, пожалуйста, как передать список во вложенный стек.Раздел параметров родительского стека Parent stack Раздел ресурсов родительского стека Parent stack resources Ошибка Error Child template

Ответы [ 2 ]

2 голосов
/ 14 марта 2019

Согласен с @ Алекс Харви.Чего ожидает Server-Stack?Список идентификаторов подсетей или один идентификатор подсети?

При просмотре родительского стека ваши PublicSubnetIds & PrivateSubnetIds объявляются как списки.Если вы намеревались передать список вашему Server-Stack, вы должны объявить его как тип List<AWS::EC2::Subnet::Id> в разделе Parameters вашего Server-Stack

1 голос
/ 14 марта 2019

Ваш код передает Ref! PublicSubnetIds типа List<AWS::EC2::Subnet::Id> в поле, которое, очевидно, ожидает данные типа AWS::EC2::Subnet::Id.

Чтобы выбрать n-й элемент списка, используйте встроенную функцию Fn :: Select , т.е.

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