AWS CDKで既存リソースのIDはSSMパラメータストアを利用する
項目 | バージョン |
---|---|
CDK | 2.28.0 |
AWS CDKで既存のリソース、例えばVPCなどを利用するケースがあります。
この既存VPCを利用する時にVPCIDが必要になりますが、tsファイルにハードコーディングするわけにいかないので、SSMパラメータストアを利用します。
「/ids/vpcid」という名前でvpcidを保存しておきます。
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
KHI入社して退社。今はCONFRAGEで正社員です。関西で140-170/80~120万から受け付けております^^
得意技はJS(ES6),Java,AWSの大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^
コメント