Синтаксис CloudFormation для ParameterOverrides - PullRequest
0 голосов
/ 18 февраля 2020

Я застреваю при переопределении нескольких параметров в CloudFormation, который передает их в CodePipeline.

Я могу успешно переопределить один параметр, как этот:

ParameterOverrides: "{ \"StageName\": \"stage\" }"

Но когда я попробуйте это:

ParameterOverrides: '{ "StageName": "prod", "EnvValue", "prod" }'

Я также пробовал эти комбинации:

ParameterOverrides: "{\"StageName\": \"prod\", \"EnvValue\", \"prod\"}"

Codepipeline выдает ошибку: свойство ParameterOverrides недопустимо

Я смотрел на это помогите статьей полдюжины раз, и мне кажется, что я следую формату T. https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/continuous-delivery-codepipeline-parameter-override-functions.html

Чего мне не хватает? У кого-нибудь это работает в шаблоне CloudFormation?

Ответы [ 2 ]

1 голос
/ 28 февраля 2020

При работе со встроенным JSON в YAML стиль свернутого (>) или литерального (|) блока, а не строки в кавычках, увеличит ясность. Итак, что-то вроде:

ParameterOverrides: >
  {
    "StageName": "prod",
    "EnvValue": "prod"
  }

Это позволит вам увидеть фактические JSON без такого большого шума от задней панели sh, которая уходит с дороги. Это можно увидеть в разделе «Пример создания стека B» страницы, на которую вы ссылаетесь (она использует стиль литерального блока с |). Разницу между | и > можно увидеть на сайте YAML Multiline .

0 голосов
/ 18 февраля 2020

Я выяснил, в чем проблема, тучный с пальцами. Я положил это:

ParameterOverrides: "{\"StageName\": \"prod\", \"EnvValue\", \"prod\"}"

, и это должно было быть так:

ParameterOverrides: "{\"StageName\": \"prod\", \"EnvValue\": \"prod\"}"

ВНИМАНИЕ: пропущенный двоеточие после второго ключа.

...