0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

AWS CDK - Context

Posted at

Context

CloudFormation の Parameters のように使える機能。
コンテキスト値は、アプリ、スタック、コンストラクトに関連付けることができるキーと値のペアです。
キーは文字列で、値は JSON でサポートされている任意の型(数値、文字列、配列、オブジェクト)を使用することが可能。

Context の提供方法

6 つある。

  1. 現在の AWS アカウントから自動的に提供
  2. CDK コマンドの --context オプションで指定
  3. プロジェクトの cdk.context.json ファイルに記述
  4. プロジェクトの cdk.json ファイルの context キー
  5. ~/.cdk.json ファイルの context キー
  6. construct.node.setContext メソッドで使用

Context の取得方法

construct.node.tryGetContext を使用して Context値を取得します。

Context methods

methods 説明
HostedZone.fromLookup アカウント内のホストゾーンを取得する。
stack.availabilityZones サポートされている AZ を取得します。
StringParameter.valueFromLookup 現在のリージョンの Amazon EC2 Systems Manager Parameter Store から値を取得する。
Vpc.fromLookup アカウント内の既存の Amazon VPC を取得する。
LookupMachineImage Amazon VPC内 の AMI を検索する。

cdk context

コマンド 説明
cdk context cdk.context.json ファイル内の情報を表示する。
cdk context --reset 特定のコンテキスト値を削除する。
cdk context --clear コンテキスト値をすべて消去する。

AWS CDK Toolkit --context flag

synth または deploy 時にコンテキスト値を CDK アプリに渡すには、--context (-c) オプションを使用します。

cdk synth --context key1=value1 --context key2=value2 MyStack

複数のスタックをデプロイする場合、指定したコンテキスト値は通常、すべてのスタックに渡されます。
必要であれば、コンテキスト値の前にスタック名を付けることで、各スタックに異なる値を指定することができます。

cdk synth --context Stack1:key=value --context Stack2:key=value Stack1 Stack2

Example

cdk.json
{
  "context": {
    "myKey": "myValue",
    "anotherKey": "anotherValue"
  }
}

from aws_cdk import core

class MyCdkStack(core.Stack):

    def __init__(self, scope: core.Construct, id: str, **kwargs) -> None:
        super().__init__(scope, id, **kwargs)

        # cdk.jsonからContextを読み込む
        my_value = self.node.try_get_context("myKey")
        another_value = self.node.try_get_context("anotherKey")
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?