CDK aws-lambda-nodejsのビルド時間を短縮する

CDKでAWSのインフラ構築をする際に、aws-lambda-nodejs moduleを使うとLambdaのコードをTypescriptで書ける。

Typescriptのコードを直接指定すればデプロイの際にコンパイルしてビルドしてくれるのでとても便利。

ただ、デフォルトだとDockerコンテナ上でビルドが実行されるのだがMacだとものすごく時間がかかる。

1つのLambdaコードのビルドに30秒ほどかかってしまうため、Lambdaコードが複数ある場合はデプロイの時間が増えて非常にストレスがたまる。

解決策がないか調べてみたところ、GithubリポジトリのREADMEに答えが書かれていた。

aws-cdk/packages/@aws-cdk/aws-lambda-nodejs at master · aws/aws-cdk

Macの場合はParcel v2.0.0-beta.1を使ってローカルでバンドルするのが推奨とのこと。

yarn add --dev --exact parcel@2.0.0-beta.1

これで再度cdk deployを実行してみたところ、Lambdaコードのビルドは2秒に短縮できた。

とはいえaws-lambda-nodejs自体がexperimentalなので、今後も定期的に追っておかないといつの間にか仕様が変わっていそう。