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

公開日時

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

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

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

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

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

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なので、今後も定期的に追っておかないといつの間にか仕様が変わっていそう。


Related #aws

Step Functionsステートマシンから別のStep Functionsを呼び出す

複雑なステートマシンを小さいステートマシンに分割しておけばテストと確認がやりやすくなる

マネージメントコンソール上のエディタでLambdaのコードを書く際にnpmライブラリを追加したい

ローカルでライブラリをインストールしてからインポートする必要があった

Amazon API Gatewayのタイムアウト設定は最大29秒まで

上限緩和もできないので注意

MFA必須のスイッチロールアカウントでaws cliを使う

switch role用のprofileを追加する

AWSのコスト異常検出を設定する

意図しない課金を防ぐためにとりあえず設定しておくと良さそう