AWS CDK 的使用 AWS CloudFormation 参数部分提到了如何自定义您的 AWS CloudFormation 模板。它指的是云形成模板。我想将参数添加到我的 CDK 堆栈并获取合成 CF 模板的参数部分。
我是否正确理解文档建议将参数部分添加到合成模板?如果是,它将被每次运行cdk synth.
任何其他方式来定义参数部分?
编辑:这是一个从上下文中读取存储桶名称的打字稿示例:https : //github.com/cloudshiftstrategies/aws-cdk-examples/tree/master/context-example-typescript-app
您可以使用 CfnParameter 类型向 CDK 添加参数,如下所示:
new cdk.CfnParameter(this, 'MyParameter', {
type: 'String',
default: 'Blah',
noEcho: true,
});
Run Code Online (Sandbox Code Playgroud)
但 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
| 归档时间: |
|
| 查看次数: |
11253 次 |
| 最近记录: |