機能フラグ - AWS Cloud Development Kit (AWS CDK) v2

これは AWS CDK v2 開発者ガイドです。古い CDK v1 は 2022 年 6 月 1 日にメンテナンスを開始し、2023 年 6 月 1 日にサポートを終了しました。

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

機能フラグ

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 Pipelines とクロスアカウントデプロイによる 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

アプリケーションがディス Amazon CloudFront トリビューションで TLS_V1_2_2019 セキュリティポリシーを使用している場合。CDK v2 は、デフォルトでセキュリティポリシー TLSv1.2_2021 を使用します。

@aws-cdk/core:stackRelativeExports

アプリケーションで複数のスタックを使用し、あるスタックから別のスタックのリソースを参照する場合、絶対パスまたは相対パスのどちらを使用して AWS CloudFormation エクスポートを構築するかが決まります。

@aws-cdk/aws-lambda:recognizeVersionProps

に設定するとfalse、CDK は Lambda 関数が変更されたかどうかを検出するときにメタデータを含めます。これにより、重複バージョンは許可されないため、メタデータのみが変更されたときにデプロイが失敗する可能性があります。アプリケーション内のすべての Lambda 関数に少なくとも 1 つの変更を加えた場合、このフラグを元に戻す必要はありません。

でこれらのフラグを元に戻すための構文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 } }