- Published on
AWS CDK メモ
- Authors
- Name
- Kikusan
refs
- AWSではじめる-クラウド開発入門
- AWS CDKの学習方法 ドキュメントや学習コンテンツをまとめてみる
- https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html
事前準備
node.jsをインストールしておく プロジェクトを開始するディレクトリで実行する
npm install -g aws-cdk
cdk init app --language=typescript
cdk bootstrap # aws cli と同じ認証情報でaws上にS3などのリソースを作成する
command
npm run build # `tsc`でビルドする。ただしCDK CLIではtsから実行してくれるため、あくまで確認用
cdk list # 利用可能なスタックを表示
cdk synth # CloudFormationテンプレートを生成 (cdk.outに出力される) deploy時に未実行の場合は実行される
cdk deploy # CloudFormationスタックをデプロイ
cdk diff # ローカルのスタックとAWS上のスタックの差分を表示
cdk destroy # スタックを削除
ソースコード
Appコンストラクタ
CDKStackをCDKアプリケーションに定義する
#!/usr/bin/env node
import 'source-map-support/register';
import * as cdk from 'aws-cdk-lib';
import { AwsCdkSampleStack } from './lib/aws-cdk-sample-stack';
const app = new cdk.App();
new AwsCdkSampleStack(app, 'AwsCdkSampleStack', {
/* If you don't specify 'env', this stack will be environment-agnostic.
* Account/Region-dependent features and context lookups will not work,
* but a single synthesized template can be deployed anywhere. */
/* Uncomment the next line to specialize this stack for the AWS Account
* and Region that are implied by the current CLI configuration. */
// env: { account: process.env.CDK_DEFAULT_ACCOUNT, region: process.env.CDK_DEFAULT_REGION },
/* Uncomment the next line if you know exactly what Account and Region you
* want to deploy the stack to. */
// env: { account: '123456789012', region: 'us-east-1' },
/* For more information, see https://docs.aws.amazon.com/cdk/latest/guide/environments.html */
});
Stack
CDKStackを定義する
import * as cdk from 'aws-cdk-lib';
import { Construct } from 'constructs';
// import * as sqs from 'aws-cdk-lib/aws-sqs';
export class AwsCdkSampleStack extends cdk.Stack {
constructor(scope: Construct, id: string, props?: cdk.StackProps) {
super(scope, id, props);
// The code that defines your stack goes here
// example resource
// const queue = new sqs.Queue(this, 'AwsCdkSampleQueue', {
// visibilityTimeout: cdk.Duration.seconds(300)
// });
}
}