AWS CloudFormation CodePipeline, ParameterOverrides, список передачи во вложенный стек - PullRequest
0 голосов
/ 17 марта 2020

Объем вопроса:

AWS CodeBuild, раздел ParametersOverrides

Использование функций переопределения параметров с конвейерами CodePipeline

1) I может передать строку в ParameterOverrides, а затем передать ее во вложенный стек, как описано ниже

- создать строковый параметр

- передать его в раздел ParameterOverrides AWS CodeBuild project

-пародный параметр во вложенном стеке

Цитирование официальной документации: AWS :: CloudFormation :: Stack

If Вы используете функцию Ref для передачи значения параметра во вложенный стек, параметры списка с разделителями-запятыми должны иметь тип String. Другими словами, вы не можете передавать значения типа CommaDelimitedList во вложенные стеки.

2) Я не могу понять, как преобразовать List в строку внутри раздела ParameterOverrides с конфигурацией ниже :

- определить параметр с типом списка ServiceSubnets: Тип: список Описание: подсети, связанные со службой

, - попытаться передать параметр в раздел ParameterOverrides в качестве значения для вложенного стека, применить функцию Join, чтобы преобразовать ее в строку

           ParameterOverrides: !Sub |
              {
                "ImageURI" : { "Fn::GetParam" : [ "BuildOutput", "imageDetail.json", "ImageURI" ] },
                "ApplicationRepoName": "${ApplicationRepoName}",
                "Cluster": "${Cluster}",
                "ListenerArn": "${ListenerArn}",
                "TargetGroup": "${TargetGroup}",
                "ServiceDesiredCount": "${ServiceDesiredCount}",
                "ServiceLoadBalancerPath": "${ServiceLoadBalancerPath}",
                "ServiceContainerPort": "${ServiceContainerPort}",
                "ServiceSecurityGroups": { "Fn::Join" : [ ",", "${ServiceSecurityGroups}"] ] },
                "ServiceSubnets": { "Fn::Join" : [ ",", "${ServiceSubnets}" ] },
                "TaskContainerPort": "${TaskContainerPort}",
                "TaskCpu": "${TaskCpu}",
                "TaskMemory": "${TaskMemory}",
                "TaskExecutionRoleArn": "${TaskExecutionRoleArn}"
              }

Так что я ожидаю, что список должен быть преобразован в строку, а строка должна быть передана, а затем использована во вложенном стеке, однако , попытка развернуть такой стек вернула ошибку:

Ошибка шаблона: переменная ServiceSecurityGroups в выражении Fn :: Sub не разрешается в строку

Мой вопрос:

Можно ли использовать функцию Join в разделе ParameterOverrides для преобразования списка в строку?

Если да, я был бы очень признателен, если бы вы поделились со мной примером, иллюстрирующим, как это сделать.

Спасибо.

...