📝

CDK でデプロイ時にスタック名を動的に設定してみた

に公開

Save and retrieve context variable values - AWS Cloud Development Kit (AWS CDK) v2
context 変数で設定してみました。

準備

今から始める CDK 入門 #1
上記ブログの「プロジェクトの作成」まで実施しました。

コード

今から始める CDK 入門 #2

lib/devio-stack.ts のコードは上記ブログと同様に L1 で VPC のみを作成するコードです。

lib/devio-stack.ts
import * as cdk from 'aws-cdk-lib';
import { Construct } from 'constructs';
import { CfnVPC } from 'aws-cdk-lib/aws-ec2';

export class DevioStack extends cdk.Stack {
  constructor(scope: Construct, id: string, props?: cdk.StackProps) {
    super(scope, id, props);

  // L1 での定義
    new CfnVPC(this, 'Vpc', {
      cidrBlock: '10.0.0.0/16',
      tags: [{ key: 'Name', value: 'devio-stg-vpc' }]
    });
  }
}

bin/devio.ts で context 変数から値を取得してスタック名に指定します。
今回は projectName という変数を使用します。

lib/devio-stack.ts
import * as cdk from 'aws-cdk-lib';
import { DevioStack } from '../lib/devio-stack';

const app = new cdk.App();
new DevioStack(app, 'DevioStack' + app.node.tryGetContext('projectName'), {
});

動作確認

デプロイしてみます。

$ cdk synth

# context 変数に projectName を指定してデプロイ
$ cdk deploy --context projectName=test

デプロイされた CloudFormation スタック名が DevioStacktest になっていれば成功です。

まとめ

今回は CDK でのデプロイ時にスタック名を動的に設定する方法を紹介しました。
どなたかの参考になれば幸いです。

参考資料

Discussion