AWS CDK をデバッグ実行する方法(TypeScript)

概要 

TypeScript の場合に、AWS CDK をデバッグ実行する方法を記載する。

手順

Node.js コマンドにデバッグ実行オプションを追加する

node_modules/.bin/ ディレクトリの ts-node ファイルを編集する。
Linux の場合は、ts-node
Windows の場合は、ts-node.cmd または、ts-node.ps1
ts-node ファイル中の node コマンドに "--inspect-brk=0.0.0.0:9229" オプションを追加する。
例:node --inspect-brk=0.0.0.0:9229 "$basedir/../ts-node/dist/bin.js"
    "$@""%_prog%" --inspect-brk=0.0.0.0:9229 "%dp0%\..\ts-node\dist\bin.js" %*

AWS CDK を実行する

--inspect-brk などを付けずに、通常通り CDK を実行する。
実行すると、デバッグ接続待機状態で起動する。

デバッガーで接続する

IntelliJ の設定を説明する。
Run → Edit Configurations... を選択し、Run/Debug Configuration を開く
+ボタンを押下し、「Attach to Node.js/Chrome」 を追加する。
以下の設定を行う。
  • Name:任意(ここでは、cdk とする)
  • Host: 127.0.0.1
  • Port: 9229
  • Chrome or Node.js > 6.3 started with --inspect を選択
Remote URLs of local files(optional) は、リモートデバッグの場合でも設定せずに動作するが、条件によっては、設定しないとブレークポイントで停止しない。
*.ts ファイルにブレークポイントを設定する。
Run → Debug 'cdk' を選択し、リモートデバッグする。
しばらくすると、ブレークポイントで停止する。

CDK は、内部で node をプロセス起動しているため、CDK 実行時に --inspect オプションを指定しても、作成したソースはデバッグできない。