通过Serverless部署Node.js Lambda时遇layer大小超出限制报错求解
可行解决方案
- 禁用Serverless Framework自动依赖安装逻辑,在
serverless.yml中添加配置:
避免部署过程中额外安装开发依赖导致体积膨胀。package: excludeDevDependencies: false - 对生产环境的
node_modules做深度瘦身,执行完npm install --production后运行清理脚本,删除冗余文件:
通常可减少30%以上的node_modules体积。find node_modules <inline_LaTeX_Formula> -name "*.md" -o -name "*.d.ts" -o -name "*.map" -o -name "*.txt" -o -name "LICENSE" <\inline_LaTeX_Formula> -o -path "*/test*" -o -path "*/__tests__" -o -path "*/examples" | xargs rm -rf - 安装依赖时指定Lambda运行环境的架构,避免本地架构冗余二进制文件占用空间:
npm install --platform=linux --arch=x64 --production - 接入
serverless-esbuild插件对Nest项目做 tree shaking 打包,仅保留实际用到的代码,打包后的体积通常可压缩到原体积的10%以内,完全避开250M限制。 - 若以上方案仍无法满足体积要求,可切换为Lambda容器镜像部署方式,容器镜像最大支持10G存储空间,不受250M解压大小限制。
内容的提问来源于stack exchange,提问作者Jeff Tian
相关产品推荐
相关产品推荐

