🔖

AWS CDK CLIをデバッグする

2021/05/02に公開

GitHubからCloneしたAWS CDK CLIをローカルでデバッグする手順をまとめました。
もっと効率いい方法があったら教えて下さい!

Overview

  1. tsc, tslint をインストール
  2. pkglint, cdk-build-tools, awslint, cdkをビルド
  3. jsファイルにdebuggerを仕込む
  4. ビルドしたCDK CLIで任意のCDKアプリケーションを実行

toolsとCDK CLI本体の依存関係はこんな感じです。

image.png

1. tsc, tslint をインストール

npm install -g tsc
npm install -g tslint

2. pkglint, cdk-build-tools, awslint, cdkをビルド

※パスは適宜読み替えてください。

cd aws-cdk/tools/pkglint
npm run build
cd aws-cdk/tools/cdk-build-tools
PATH=$PATH:~/.ghq/github.com/aws/aws-cdk/tools/pkglint/bin
npm run build
cd ~/.ghq/github.com/aws/aws-cdk/tools/awslint
npm run build
cd aws-cdk/packages/aws-cdk
PATH=$PATH:~/.ghq/github.com/aws/aws-cdk/tools/cdk-build-tools/bin
PATH=$PATH:~/.ghq/github.com/aws/aws-cdk/tools/awslint/bin
npm run build

3. jsファイルにdebuggerを仕込む

nodeアプリケーションのデバッグ方法は以下を参照してください。
https://nodejs.org/api/debugger.html

vi aws-cdk/packages/aws-cdk/bin/cdk.js

結果として、こんな感じになります。

    async function cliSynthesize(stackNames, exclusively) {
        // 省略......
        debugger; // debuggerを仕込む。
        appStacks.processMetadata(stacks);

4. ビルドしたCDK CLIで任意のCDKアプリケーションを実行

cd ${APPLICATION_DIR}/cdk
node inspect ~/.ghq/github.com/aws/aws-cdk/packages/aws-cdk/bin/cdk synth -v

以上です。

GitHubで編集を提案

Discussion