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

Alexaに気温と二酸化炭素濃度を教えてもらう

「Alexa、気温」でセンサー情報を教えてくれるようになった

CloudWatchのカスタムメトリクスを減らす

あまりチェックしないセンサー値の送信を止めた

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

circleci/aws-serverlessのOrbを使った

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

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

Nodejs12のLambdaでawscliを使う

aws-lambda-layer-awscliを使う

s3の署名付きURLが有効期限より前に見れなくなってしまう

IAMロールではなくIAMユーザの権限でURLを生成する必要があった