這是 AWS CDK v2 開發人員指南。較舊的 CDK v1 已於 2022 年 6 月 1 日進入維護,並於 2023 年 6 月 1 日結束支援。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
AWS CDK 使用特徵標記來啟用版本中可能中斷的行為。旗標會以內容值和 AWS CDK值的形式存放在 cdk.json
(或 ) 中~/.cdk.json
。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
,CDK 會在偵測 Lambda 函數是否已變更時包含中繼資料。這可能會在只有中繼資料變更時導致部署失敗,因為不允許重複版本。如果您已對應用程式中的所有 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
}
}