Published on

AWS CDK メモ

Authors
  • avatar
    Name
    Kikusan
    Twitter

refs

事前準備

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)
    // });
  }
}