AWS CDKでステージ別にスタックを作る

AWS CDKでステージ別にスタックを作る:

$ cdk --version 
0.23.0 (build 1d705e7) 
AWS CDKは複数スタックをまとめて定義・デプロイができます。

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でステージ別のスタックを作る

コメント

このブログの人気の投稿

投稿時間:2021-06-17 22:08:45 RSSフィード2021-06-17 22:00 分まとめ(2089件)

投稿時間:2021-06-20 02:06:12 RSSフィード2021-06-20 02:00 分まとめ(3871件)

投稿時間:2021-06-17 05:05:34 RSSフィード2021-06-17 05:00 分まとめ(1274件)