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

Lambdaでaws cli configureを設定できるようにする

AWS_CONFIG_FILE=/tmp/.aws/configを設定した

CloudWatchアラームを一時的に無効化する

AWS CLIで設定する必要がある

RDSを定期的に停止するLambdaを作る

手動起動は大変なので

AWS SESの受信メールを暗号化してs3に保存しLambdaで読み込む

jsの場合、複合処理を独自実装する必要がある

AWS SAMで作ったLambdaアプリをCircleCIでデプロイする

circleci/aws-serverlessのOrbを使った