1. motchi0214

    Posted

    motchi0214
Changes in title
+AWS CDKでステージ別のスタックを作る
Changes in tags
Changes in body
Source | HTML | Preview

AWS CDKでステージ別にスタックを作る を書いてからもっといい方法が見つかったので続報。

$ cdk --version
0.23.0 (build 1d705e7)

Contextを使う

cdk synthまたはcdk deployには-c / --contextオプションがつけれます。これを使うことで、ステージやさまざまな値をスタックに流し込めます。

$ npm run build && cdk synth -c stage=development --output output/

Contextの受け取り方

getContext()メソッドで受け取れます。

const app = new cdk.App();
const stage = app.node.getContext('stage')
new TestStack(app, `TestStack-${stage}`, stage)
app.run();

stack内でも使える様子です。

class TestStack extends cdk.Stack {
  constructor(
    scope: cdk.App,
    id: string,
    props?: cdk.StackProps
  ) {
    super(scope, id, props);
    const stage = console.log(this.node.getContext('stage'))

    new sqs.Queue(this, `ProjdynamoQueue-${stage}`, {
      visibilityTimeoutSec: 300,
    })
  }
}