AWS CDKでステージ別にスタックを作る
AWS CDKでステージ別にスタックを作る:
AWS CDKは複数スタックをまとめて定義・デプロイができます。
https://qiita.com/motchi0214/items/cb54d4fd2fc979ae4add
これを応用することで、prod / devのスタックをまとめて定義できます。
DynamoDBやCognitoのリソースをステージによって変えている場合に使えます。
「devのつもりがprodもやっちゃった」ということが起きるので、npm run-scriptやCode Pipelineなどを使って
context使ったほうが筋が良さそうです。
AWS CDKでステージ別のスタックを作る
$ cdk --version 0.23.0 (build 1d705e7)
https://qiita.com/motchi0214/items/cb54d4fd2fc979ae4add
これを応用することで、prod / devのスタックをまとめて定義できます。
import cdk = require('@aws-cdk/cdk'); import sqs = require('@aws-cdk/aws-sqs'); export class TestStack extends cdk.Stack { constructor( scope: cdk.App, id: string, stage: string, props?: cdk.StackProps ) { super(scope, id, props); new sqs.Queue(this, `ProjdynamoQueue-${stage}`, { visibilityTimeoutSec: 300, }) } } const app = new cdk.App(); const stages = [ 'production', 'development' ] stages.forEach(stage => new TestStack(app, `TestStack-${stage}`, stage)) app.run();
使い所
DynamoDBやCognitoのリソースをステージによって変えている場合に使えます。
注意点
cdk deploy
すると全スタックがデプロイされます。「devのつもりがprodもやっちゃった」ということが起きるので、npm run-scriptやCode Pipelineなどを使って
cdk deploy
をダイレクトに実行しないようにすることをおすすめします。
package.json
{ "scripts": { "build": "tsc", "watch": "tsc -w", "cdk": "./node_modules/.bin/cdk", "deploy-dev": "npm run cdk deploy TestStack-development", "deploy-prod": "npm run cdk deploy TestStack-production" } }
追記
context使ったほうが筋が良さそうです。AWS CDKでステージ別のスタックを作る
コメント
コメントを投稿