AWS CDKでnode_modulesを含めてLambda(node.js)デプロイする方法

AWS CDKでnode_modulesを含めてLambda(node.js)デプロイする方法

前提

CDKプロジェクト作成は「AWS CDKでLambda(node.js)をデプロイする」参照してください。

node_modulesを含める

AWS CDKはすごい便利っぽいけども、node_modules(外部ライブラリ)や共通のjsはどうするんだろうと思ってとりあえずnode_modulesの含め方です。

bundleするesbuildモジュールというのを追加する必要があるようです。webpackみたいなものだと思います。

その後に、ここではmoment-timezoneを外部依存として追加します。

moment-timezoneを追加してpackage.jsonに含めておきます。

lib配下のts修正

tsファイルを修正します。

buildingオプションでモジュールを配列で指定します。

という感じで指定が必要なようです。

これでデプロイします。

node_modules入ってます。

AWS CDKでnode_modulesを含めてデプロイする方法

top level awaitがサポートされていない

AWS CDKでデプロイしたLambdaに関して、現時点では、esbuildでtop level awaitがサポートされていないようです。

https://github.com/evanw/esbuild/issues/253

参考サイト

https://docs.aws.amazon.com/cdk/api/v1/docs/aws-lambda-nodejs-readme.html#install-modules

https://zenn.dev/fuku710/articles/8fabcb6ff2dcd8

コメントをどうぞ

メールアドレスが公開されることはありません。

CAPTCHA