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

Node.js Lambda SAM应用部署报错:解压缩大小超限解决方案咨询

解决Node.js Lambda SAM包体积超标的问题

方法1:用SAM CLI配置单独打包(对应serverless的individual: true)

SAM不支持在template.yml里加package字段,但可以通过samconfig.toml或命令行参数实现单独打包每个函数:

  • 在项目根目录新建/修改samconfig.toml,添加以下配置:
[default.package.parameters]
individual = true
  • 执行sam package命令,每个Lambda函数会单独打包,避免把所有函数的依赖堆在一起,减小单个包的体积。

方法2:在template.yml里通过构建配置排除冗余文件

SAM允许在函数的Metadata字段里配置打包规则,无需修改template顶层属性:

用esbuild自动压缩+精简依赖

esbuild是SAM默认支持的构建工具,能自动打包生产依赖、压缩代码,直接在函数资源下添加这段配置:

Resources:
  YourLambdaFunction:
    Type: AWS::Serverless::Function
    Properties:
      CodeUri: ./你的函数代码路径
      Runtime: nodejs20.x
      # 其他函数属性...
    Metadata:
      BuildMethod: esbuild
      BuildProperties:
        Minify: true
        Target: "es2020"
        Sourcemap: false
        External: ['aws-sdk'] # Lambda环境自带AWS SDK,直接排除
        Bundle: true

手动指定排除目录

如果不想用esbuild,也可以用makefile方式指定要排除的文件:

Resources:
  YourLambdaFunction:
    Type: AWS::Serverless::Function
    Properties:
      CodeUri: ./你的函数代码路径
      Runtime: nodejs20.x
    Metadata:
      BuildMethod: makefile
      BuildProperties:
        Exclude:
          - node_modules/**/*
          - test/**/*
          - .git/**/*

同时在函数目录下创建Makefile,编写构建逻辑:

build-YourLambdaFunction:
    npm install --production
    cp -r ./src/* .

这样打包时只会包含生产依赖和业务代码,dev依赖、测试文件等冗余内容会被排除。

方法3:用Lambda Layers拆分依赖

把node_modules这类公共依赖单独做成Layer,多个函数共享,函数包只存放业务代码:

  1. 创建layers/node-deps目录,在该目录下新建nodejs文件夹,进入nodejs目录执行npm install --production安装依赖。
  2. 在template.yml里定义Layer资源:
Resources:
  NodeDependenciesLayer:
    Type: AWS::Serverless::LayerVersion
    Properties:
      ContentUri: ./layers/node-deps/
      CompatibleRuntimes:
        - nodejs20.x
      RetentionPolicy: Retain
  1. 在Lambda函数中引用这个Layer:
YourLambdaFunction:
    Type: AWS::Serverless::Function
    Properties:
      CodeUri: ./你的函数代码路径
      Runtime: nodejs20.x
      Layers:
        - !Ref NodeDependenciesLayer
      # 其他函数属性...

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 23:05:19