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
AWS Systems Manager のツールである Parameter Store が、設定データ管理と機密管理のための安全な階層型ストレージをどのように提供しているのかについて説明します。
aws-cdk-lib.aws_ssm module · AWS CDK
Language | Package

KHI入社して退社。今はCONFRAGEで正社員です。関西で140-170/80~120万から受け付けております^^
得意技はJS(ES20xx),Java,AWSの大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^



コメント