これは AWS CDK v2 デベロッパーガイドです。古い CDK v1 は 2022 年 6 月 1 日にメンテナンスを開始し、2023 年 6 月 1 日にサポートを終了しました。
翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
パラメータ
パラメータは、デプロイ時に提供されるカスタム値です。パラメータは の機能です AWS CloudFormation。は AWS CloudFormation テンプレートを AWS Cloud Development Kit (AWS CDK) 合成するため、デプロイ時パラメータもサポートされています。
パラメータについて
を使用すると AWS CDK、パラメータを定義できます。パラメータは、作成したコンストラクトのプロパティで使用できます。パラメータを含むスタックをデプロイすることもできます。
AWS CDK Toolkit を使用して AWS CloudFormation テンプレートをデプロイするときは、コマンドラインでパラメータ値を指定します。 AWS CloudFormation コンソールからテンプレートをデプロイすると、パラメータ値の入力を求められます。
一般的に、 で AWS CloudFormation パラメータを使用しないことをお勧めします AWS CDK。値を AWS CDK アプリケーションに渡す通常の方法は、コンテキスト値と環境変数です。合成時に使用できないため、パラメータ値は CDK アプリのフロー制御やその他の目的に簡単に使用できません。
注記
パラメータで制御フローを行うには、CfnCondition
コンストラクトを使用できますが、これはネイティブif
ステートメントに比べて面倒です。
パラメータを使用するには、記述するコードがデプロイ時および合成時にどのように動作するかに注意する必要があります。これにより、メリットをほとんど得られないために、多くの場合、 AWS CDK アプリケーションを理解し、その理由を理解することが難しくなります。
通常、CDK アプリは必要な情報を明確に定義して受け入れ、CDK アプリでコンストラクトを宣言するために直接使用する方が適しています。理想的に AWS CDK生成された AWS CloudFormation テンプレートは具体的であり、デプロイ時に指定できる値はありません。
ただし、 AWS CloudFormation パラメータが一意に適しているユースケースがあります。例えば、インフラストラクチャを定義してデプロイするチームが別の場合は、パラメータを使用して生成されたテンプレートをより広く活用できます。また、 はパラメータ AWS CDK をサポート AWS CloudFormation しているため、 AWS CloudFormation テンプレートを使用する AWS サービス (Service Catalog など) AWS CDK で を使用できます。これらの AWS サービスは、パラメータを使用してデプロイされるテンプレートを設定します。
パラメータの定義
CfnParameter
クラスを使用してパラメータを定義します。少なくともほとんどのパラメータのタイプと説明を指定する必要がありますが、どちらも技術的にはオプションです。説明は、ユーザーが AWS CloudFormation コンソールにパラメータの値を入力するように求められたときに表示されます。使用可能なタイプの詳細については、「タイプ」を参照してください。
注記
パラメータは任意の範囲で定義できます。ただし、コードをリファクタリングするときに論理 ID が変更されないように、スタックレベルでパラメータを定義することをお勧めします。
パラメータの使用
CfnParameter
インスタンスは、トークン を介してその値を AWS CDK アプリケーションに公開します。すべてのトークンと同様に、パラメータのトークンは合成時に解決されます。ただし、具体的な値ではなく、 AWS CloudFormation テンプレートで定義されたパラメータ (デプロイ時に解決されます) への参照に解決されます。
トークンは、 Token
クラスのインスタンスとして取得することも、文字列、文字列リスト、または数値エンコーディングで取得することもできます。選択は、 パラメータを使用するクラスまたはメソッドで必要な値の種類によって異なります。
例えば、Bucket
定義で パラメータを使用するには、次のようにします。
パラメータを使用したデプロイ
パラメータを含む生成されたテンプレートは、 AWS CloudFormation コンソールから通常の方法でデプロイできます。各パラメータの値の入力を求められます。
AWS CDK Toolkit (cdk
コマンドラインツール) では、デプロイ時のパラメータの指定もサポートされています。これらは、 --parameters
フラグに従ってコマンドラインで指定します。次の例のように、 uploadBucketName
パラメータを使用するスタックをデプロイできます。
cdk deploy MyStack --parameters uploadBucketName=uploadbucket
複数のパラメータを定義するには、複数の--parameters
フラグを使用します。
cdk deploy MyStack --parameters uploadBucketName=upbucket --parameters downloadBucketName=downbucket
複数のスタックをデプロイする場合は、スタックごとに各パラメータに異なる値を指定できます。これを行うには、 パラメータの名前の前にスタック名とコロンを付けます。
cdk deploy MyStack YourStack --parameters MyStack:uploadBucketName=uploadbucket --parameters YourStack:uploadBucketName=upbucket
デフォルトでは、 は以前のデプロイのパラメータの値 AWS CDK を保持し、明示的に指定されていない場合は、後続のデプロイでそれらを使用します。--no-previous-parameters
フラグを使用して、すべてのパラメータを指定する必要があります。