这是 AWS CDK v2 开发者指南。旧版 CDK v1 于 2022 年 6 月 1 日进入维护阶段,并于 2023 年 6 月 1 日终止支持。
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
AWS CDK 使用功能标志来启用发行版中可能存在的破坏行为。标志以 cdk.json
(或 ~/.cdk.json
)中的 上下文值和 AWS CDK 值形式存储。cdk context --reset 或 cdk 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
-
使用新的堆栈合成方法,该方法假设引导资源具有明确的名称。需要现代引导,但反过来又允许通过 CDK 管线进行 CI/CD 以及开箱即用的跨账户部署。
@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
}
}