@cm-madlabs/cdk-constructs

AWS CDK Constructs that can be used universally

Usage no npm install needed!

<script type="module">
  import cmMadlabsCdkConstructs from 'https://cdn.skypack.dev/@cm-madlabs/cdk-constructs';
</script>

README

MIT License Build Release

MAD Labs AWS CDK Constructs

汎用的なCDKリソース定義をConstructとしてまとめていきます。 AWS CDKで実装する際の参考に使ってください。

How to use

基本的な使い方は、CDKのConstructを使う手順と同様です。

パッケージをインストールする

yarn add -D @cm-madlabs/cdk-construct

CDKプロジェクトでimportして使う

import * as cdk from '@aws-cdk/core';
import {BucketReplicationIamRole} from '@cm-madlabs/cdk-construct';

export class TestStack extends cdk.Stack {
    constructor(scope: cdk.Construct, id: string, props?: cdk.StackProps) {
        super(scope, id);
        
        // パケットレプリケーション用のIAMロールを作成するConstruct
        const replication = new BucketReplicationIamRole(this, 'test', {
            bucketName: 'test',
            baseIamRoleArn: 'test',
            destinationRoleArn: 'test',
        });
        
        console.log(replication.role);
    }
}

API Reference

Constructをクラスとしてまとめています。クラスの仕様については、 API.mdを参照してください。

Steps to add Construct

新しいConstructを追加する手順です。 このプロジェクトでは、テスト的に projen というプロジェクトの設定を管理するOSSをを使っています。 基本的に、package.json,tsconfig.jsonなどの設定ファイルとなる json ファイルを直接触ることができません。 新しいライブラリを追加したり、設定ファイルをいじる場合は、projenrc.jsを修正します。

1. プロジェクトを Clone する

プロジェクトをCloneします。

git clone https://github.com/cm-madlabs/cdk-constructs.git

2. パッケージをインストールする

projenの制約で使っているので、yarn installを使ってはいけません。

yarn prohen

3. Constructをsrc/配下に作成する

Constructクラスを作成する手順です。

cdk.Constructを継承したクラスを作成します。

import * as cdk from '@aws-cdk/core';

export class TestConstruct extends cdk.Construct {
    constructor(scope: cdk.Construct, id: string, props: IS3BucketReplicationIamRoleProps) {
        super(scope, id);
        
        // 以下にConstrcutとしてまとめたいリソース定義を作成する
    }
}

src/index.tsに追加したConstructを追加する

export * from './test-construct';

4. Snapshot テストを書く

生成されるCloudFormationテンプレートにに変更がないことを確認するSnapshotテストを作成します。

WIP