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


Related #aws

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

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

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

circleci/aws-serverlessのOrbを使った

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

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

AWS CDK使用時にリージョンを指定する

new Stackの際にenvで指定できる