You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Serverless部署时连续触发AWS Lambda层大小超限错误

解决AWS Lambda Layer发布时的未压缩大小超限问题

可能触发问题的原因

你提到依赖压缩包大小没变化,但连续构建时报错,大概率是这几个情况:

  • GitHub Actions工作目录没清干净,每次构建都把之前的残留文件重复打进Layer包
  • Serverless Framework的Layer配置没做好,把冗余文件(比如本地缓存、日志、开发依赖)也打包进去了
  • 依赖安装环节出问题,比如重复安装导致node_modules体积异常变大

具体解决方法

1. 在GitHub Actions里加个清理步骤

构建前强制清空工作目录,避免残留文件搞事情:

- name: 清理工作目录
  run: |
    rm -rf node_modules
    rm -rf .serverless
    git clean -fdx

2. 修正Serverless的Layer打包配置

确保只打包必要的依赖,把没用的都排除。比如在serverless.yml里这么写:

layers:
  MyDependencies:
    path: layer # 你的依赖存放目录
    package:
      include:
        - node_modules/**
      exclude:
        - node_modules/**/.bin
        - node_modules/**/*.log
        - node_modules/**/test
        - node_modules/**/docs
        - node_modules/**/*.map

3. 安装依赖只拿生产环境的

用--production参数跳过开发依赖,减少打包体积:

npm ci --production
# 用yarn的话就跑这个
yarn install --production

4. 提前检查Layer未压缩大小

不管是本地还是在GitHub Actions里,加个步骤验证解压后的大小,确认是不是真的超了:

# 解压Layer包并查看大小
unzip -q layer.zip -d temp-layer
du -sh temp-layer
rm -rf temp-layer

5. 排查是否重复打包依赖

检查你的Serverless配置,别同时在函数代码和Layer里打包相同的依赖。业务代码只放逻辑,依赖全丢Layer里,避免重复计算大小。

额外小技巧

要是上面的方法都没用,可以试试这些:

  • 换个国内npm镜像装依赖,避免下载额外缓存文件
  • 给依赖瘦身:删掉没用的包,或者用更轻量的替代(比如用lodash-es代替完整lodash)
  • 去AWS控制台确认旧Layer版本真的删干净了(虽然删除延迟概率低,但也可以排查下)

内容的提问来源于stack exchange,提问作者Ananya Dasgupta

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 17:40:18