1. motchi0214

    Posted

    motchi0214
Changes in title
+AWS CDKでステージ別のスタックを作る
Changes in tags
Changes in body
Source | HTML | Preview
@@ -0,0 +1,44 @@
+[AWS CDKでステージ別にスタックを作る](https://qiita.com/motchi0214/items/eb0f93131fdfb64e0378) を書いてからもっといい方法が見つかったので続報。
+
+```
+$ 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,
+ })
+ }
+}
+```