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

Serverless打包异常:Lambda包含其他函数且体积过大求助

AWS Lambda包体积问题排查与优化方案

一、为什么开启package: individually: true后每个包都包含所有函数文件?

当前全局package.patterns仅配置了排除规则,未针对单个函数设置包含规则。启用individually: true时,Serverless框架默认会把项目根目录下所有未被排除的文件(即所有.py文件)打包到每个函数的zip包中,因此每个函数包都包含了全量函数代码和共享工具类。

二、缩减Lambda包体积的实用方法

1. 给每个函数单独配置打包范围

在每个函数的配置中添加package规则,先排除所有文件,再仅包含当前函数需要的代码,避免打包无关文件:

functions:
  function1:
    handler: function1.function1
    package:
      include:
        - function1.py
        - sharedUtility.py  # 若该函数依赖共享工具类则保留
      exclude:
        - '**'  # 先排除所有文件,再按需包含
  function2:
    handler: function2.function2
    package:
      include:
        - function2.py
        - sharedUtility.py
      exclude:
        - '**'
  reallySmallFunction:
    handler: reallySmallFunction.reallySmallFunction
    package:
      include:
        - reallySmallFunction.py
        - sharedUtility.py
      exclude:
        - '**'

2. 优化Python依赖打包配置

调整serverless-python-requirements参数,最大化压缩依赖体积:

  • 开启zip: true:将依赖压缩为zip包,减少整体体积
  • 添加dockerizePip: non-linux:若本地是Windows/Mac系统,确保依赖是针对Lambda的Linux环境编译的,避免冗余平台相关文件
  • 加入strip: true:进一步清理依赖中的调试符号和无用文件
  • 排除Lambda自带库:boto3、botocore等是AWS Lambda运行时内置的库,无需打包

修改后的配置示例:

custom:
  pythonRequirements:
    zip: true
    slim: true
    strip: true
    dockerizePip: non-linux
    noDeploy:
      - pytest
      - boto3
      - botocore

3. 使用Lambda Layers共享公共代码与依赖

将sharedUtility.py和所有公共依赖打包成一个Lambda Layer,每个函数仅打包自身业务代码,通过引用Layer复用公共资源,大幅降低单个函数包体积:

# 定义Layer
layers:
  sharedLambdaLayer:
    path: shared-layer  # 新建该目录,存放sharedUtility.py和安装的依赖
    compatibleRuntimes:
      - python3.8

# 函数中引用Layer
functions:
  function1:
    handler: function1.function1
    layers:
      - !Ref SharedLambdaLayerLambdaLayer

注意:Layer未压缩部署包大小限制为250MB,单个函数最多引用5个Layer。

4. 手动清理冗余文件

检查.serverless目录下的zip包内容,确认是否有意外打包的大文件(如日志、测试数据、临时文件等),补充到全局或函数级的exclude规则中。

5. 升级Python运行时

切换到Python 3.10或更高版本,新运行时本身更轻量化,且对依赖兼容性更好,部分依赖包在高版本Python下体积更小。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 18:15:03