Я передаю параметр из основного стека облачной информации во вложенный стек для 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'
Есть ли способ, как добиться этого на облачной информации или кто-то может предложить решениеКак передать пару пар ключ-значение из основного в дочерний стек в качестве параметра?