AWS CDK 功能标志 - AWS Cloud Development Kit (AWS CDK) v2

这是 AWS CDK v2 开发者指南。较旧的 CDK v1 于 2022 年 6 月 1 日进入维护阶段,并于 2023 年 6 月 1 日终止支持。

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

AWS CDK 功能标志

AWS CDK 使用功能标志来启用发行版中可能存在的破坏行为。标志以cdk.json(或~/.cdk.json)中的上下文值和 AWS CDK值形式存储。cdk context --resetcdk context --clear命令不会将其删除。

默认情况下,功能标记处于禁用状态。未指定标志的现有项目将在以后的 AWS CDK 版本中像以前一样继续运行。使用cdk init启用创建该项目的版本中所有可用功能的标志创建了新项目。编辑cdk.json以禁用您更喜欢以前行为的所有标志。您还可以在升级后添加标志以启用新行为 AWS CDK。

所有当前功能标志的列表可以在中的 AWS CDK GitHub 存储库中找到FEATURE_FLAGS.md。有关该版本CHANGELOG中添加的任何新功能标志的描述,请参阅给定版本中的。

恢复到 v1 行为

在 CDK v2 中,与 v1 相比,某些功能标志的默认值已更改。您可以将它们设置回来以恢复false到特定的 AWS CDK v1 行为。使用cdk diff命令检查对合成模板的更改,以查看是否需要这些标志中的任何一个。

@aws-cdk/core:newStyleStackSynthesis

使用新的堆栈合成方法,该方法假设引导资源具有众所周知的名称。需要现代引导,但反过来又允许通过 Pipelines 进行的 CI/CD 和开CDK箱即用的跨账户部署。

@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId

如果您的应用程序使用多个 Amazon API Gateway API 密钥并将其与使用计划相关联。

@aws-cdk/aws-rds:lowercaseDbIdentifier

如果您的应用程序使用 Amazon RDS 数据库实例或数据库集群,并明确指定这些实例或数据库集群的标识符。

@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021

如果您的应用程序在分配中使用 TLS _V1_2_2019 安全策略。 Amazon CloudFront CDK默认情况下,v2 使用安全策略 TLSv1 .2_2021。

@aws-cdk/core:stackRelativeExports

如果您的应用程序使用多个堆栈,而您在另一个堆栈中引用来自一个堆栈的资源,则这将决定使用绝对路径还是相对路径来构造 AWS CloudFormation 导出。

@aws-cdk/aws-lambda:recognizeVersionProps

如果设置为false,则在检测 Lambda 函数是否已更改时CDK包含元数据。由于不允许使用重复的版本,因此当只有元数据发生更改时,这可能会导致部署失败。如果您对应用程序中的所有 Lambda 函数进行了至少一次更改,则无需恢复此标志。

此处显示了在中恢复这些标志cdk.json的语法。

{ "context": { "@aws-cdk/core:newStyleStackSynthesis": false, "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": false, "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": false, "@aws-cdk/aws-rds:lowercaseDbIdentifier": false, "@aws-cdk/core:stackRelativeExports": false, "@aws-cdk/aws-lambda:recognizeVersionProps": false } }