Как указать определение параметра в стеке CDK? - PullRequest
1 голос
/ 27 сентября 2019

Используйте параметр AWS CloudFormation раздела AWS CDK, в котором рассказывается, как настроить шаблоны AWS CloudFormation.Это относится к шаблону формирования облаков .Я хотел бы добавить параметры в мой стек CDK и получить раздел параметров синтезированного шаблона CF.

Правильно ли я понимаю, что документация предлагает добавить раздел параметров в синтезированный шаблон?Если да, он будет перезаписываться при каждом запуске cdk synth.

. Любой другой способ определить секцию параметров?

1 Ответ

1 голос
/ 30 сентября 2019

Редактировать: Вот пример машинописного текста, который считывает имя сегмента из контекста: https://github.com/cloudshiftstrategies/aws-cdk-examples/tree/master/context-example-typescript-app

Вы можете добавить параметры в CDK, используя тип CfnParameter, например:

new cdk.CfnParameter(this, 'MyParameter', {
    type: 'String',
    default: 'Blah',
    noEcho: true,
});

Но это, как правило, не одобряет CDK.План состоит в том, чтобы иметь полностью развертываемые стеки и использовать код / ​​конфигурацию в качестве условий для того, что должно быть создано для данной учетной записи.Это из их документации :

Когда вы запускаете команду cdk synth для приложения с несколькими стеками, облачная сборка включает отдельный шаблон для каждого экземпляра стека.Даже если два стека являются экземплярами одного и того же класса, AWS CDK генерирует их как два отдельных шаблона.

Вы можете синтезировать каждый шаблон, указав имя стека в команде cdk synth.В следующем примере синтезируется шаблон для stack1.

Этот подход концептуально отличается от того, как обычно используются шаблоны AWS CloudFormation, где шаблон может быть развернут несколько раз и параметризован с помощью параметров AWS CloudFormation.Хотя параметры AWS CloudFormation можно определить в AWS CDK, их обычно не рекомендуется, поскольку параметры AWS CloudFormation разрешаются только во время развертывания.Это означает, что вы не можете определить их значение в вашем коде.Например, чтобы условно включить ресурс в свое приложение на основе значения параметра, необходимо установить условие AWS CloudFormation и пометить ресурс этим условием.Поскольку в AWS CDK используется подход, при котором конкретные шаблоны разрешаются во время синтеза, вы можете использовать оператор if, чтобы проверить значение, чтобы определить, должен ли быть определен ресурс или какое-то поведение.

Параметры в cdk будут передаваться через значения контекста либо из командной строки, либо через cdk.json, как описано здесь: https://docs.aws.amazon.com/cdk/latest/guide/get_context_var.html

...