Преобразование параметров вложенного стека CloudFormation из String / ComaDelimitedList в «пары сопоставления ключ-значение» - PullRequest
0 голосов
/ 23 января 2019

Я передаю параметр из основного стека облачной информации во вложенный стек для RequestParameters свойство 'AWS :: ApiGateway :: Method' ресурс.

Поддерживаемые типы параметров CloudFormation (DataType): String , Number , List , CommaDelimitedList и типы параметров, специфичные для AWS, как указано здесь:

Можно ли установить значение параметра как String (или CommaDelimitedList ) и во вложенном стеке преобразовать его в пары ключ-значение сопоставлений как RequestParameters свойство ресурса 'AWS :: ApiGateway :: Method' требует его?

Отображение пар ключ-значение будет выглядеть следующим образом:

Resources:
  LambdaEndpointMethod:
    Type: AWS::ApiGateway::Method
    Properties:
      RequestParameters:
        method.request.querystring.param1 : true
        method.request.querystring.param2 : true
        method.request.querystring.param3 : true

Я уже пытался указать тип параметра String и передать все пары ключ-значение в виде строк, разделенных запятыми, а затем использовать внутреннюю функцию Fn :: Split, чтобы разделить строку, но облачность выдает ошибку Value of property RequestParameters must be an object.

это мой шаблон вложенного стека:

Parameters:
  RequestParametersString:
    Description: List of request parameters
    Type: String
    Default: ''

...

Conditions:
  EmptyRequestParametersString: !Equals [ !Ref RequestParametersString, '' ]

...

Resources:
  LambdaEndpointMethod:
    Type: AWS::ApiGateway::Method
    Properties:
      RequestParameters: !If [ EmptyRequestParametersString, 'AWS:NoValue', !Split [',', !Ref RequestParametersList] ]

и это мой основной шаблон:


  MyNestedStack:
    Type: AWS::CloudFormation::Stack
    Properties:
      TemplateURL: ...
      Parameters:
         ...
        RequestParametersString: 'method.request.querystring.param1 : true, method.request.querystring.param2 : true, method.request.querystring.param3 : false'

Есть ли способ, как добиться этого на облачной информации или кто-то может предложить решениеКак передать пару пар ключ-значение из основного в дочерний стек в качестве параметра?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...