🐶

AWS Lambda@Edge Node.jsで容量制限を回避する方法

2024/01/15に公開

Viewer request and viewer response eventsの場合、ライブラリも含めて1MBの制限がある
https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html#limits-lambda-at-edge

esbuildを利用しドキュメントやテストをなくし、minifyすればだいぶ軽くなる
https://aws.amazon.com/jp/blogs/news/optimizing-node-js-dependencies-in-aws-lambda/

AWS SDKはLambdaランタイムに含まれているのでbundleする必要はない

CDKでDeployする場合には、externalModulesを指定すればよさそう
※私は利用していないので実際には試していないです
https://dev.classmethod.jp/articles/aws-lambda-support-node-js-18/

lambrollなどCDKを利用しておらず、esbuildを素で使っている場合は、--external: オプションを利用すれば良い

 "scripts": {
    "build": "rm -rf dist && esbuild ./src/* --entry-names=[dir]/[name]/index --bundle --minify --platform=node --target=node18 --outdir=dist --external:@aws-sdk/*",
 }

https://esbuild.github.io/api/#external

Discussion