AWS CDKで既存リソースのIDはSSMパラメータストアを利用する

AWS CDKで既存リソースのIDはSSMパラメータストアを利用する

項目バージョン
CDK2.28.0

AWS CDKで既存のリソース、例えばVPCなどを利用するケースがあります。

この既存VPCを利用する時にVPCIDが必要になりますが、tsファイルにハードコーディングするわけにいかないので、SSMパラメータストアを利用します。

「/ids/vpcid」という名前でvpcidを保存しておきます。

AWS CDKで既存リソースのIDはSSMパラメータストアを利用する

aws-ssmをimportします。

import { StringParameter } from 'aws-cdk-lib/aws-ssm'

tsファイルを修正します。

import { Stack, StackProps, aws_lambda_nodejs as lambda } from 'aws-cdk-lib';
import * as ec2 from 'aws-cdk-lib/aws-ec2';
import { Construct } from 'constructs';
import { StringParameter } from 'aws-cdk-lib/aws-ssm'

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

    // 既存VPC
    const vpc = ec2.Vpc.fromLookup(this, 'Vpc', {
      vpcId: StringParameter.valueFromLookup(this, '/ids/vpcid')
    })

    // vpcidが取得できることを確認
    console.log(StringParameter.valueFromLookup(this, '/ids/vpcid'))

  }
}

これでデプロイします。

cdk deploy

正常デプロイでき、vpcidが取得できることを確認できます。

参考サイト

AWS Systems Manager Parameter Store - AWS Systems Manager
Parameter Store は、設定データ管理と機密管理のための安全な階層型ストレージを提供します。
aws-cdk-lib.aws_ssm module · AWS CDK
Language | Package

コメント

タイトルとURLをコピーしました