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

在Vercel部署Django项目遇Serverless函数大小超限错误求解决

解决Vercel部署Django时Serverless函数大小超限问题

你遇到的是Vercel Serverless函数体积超过50MB上限的问题,以下是具体解决方法:

1. 清理冗余文件与依赖

  • 在项目根目录创建.vercelignore文件,添加以下内容排除非必要文件:
    __pycache__/
    *.pyc
    *.pyo
    *.pyd
    venv/
    node_modules/
    staticfiles/
    media/
    .git/
    .github/
    tests/
    docs/
    
  • 拆分依赖清单:将开发依赖(如pytest、black)移至单独的requirements-dev.txt,部署时仅安装requirements.txt中的生产依赖。
  • 使用pipreqs生成精确的生产依赖列表,替代手动维护的requirements.txt:
    pipreqs --force --savepath requirements.txt
    

2. 优化依赖安装与压缩

  • 安装依赖时使用--no-cache-dir避免缓存文件被打包:
    pip install --no-cache-dir -r requirements.txt
    
  • 替换大体积依赖:比如用psycopg2-binary替代psycopg2,用ujson替代标准库json,减少依赖体积。
  • 手动清理依赖包中的冗余目录:部署前执行脚本删除依赖包内的测试、文档目录:
    find ./venv/lib/python3.9/site-packages -name "tests" -type d | xargs rm -rf
    find ./venv/lib/python3.9/site-packages -name "docs" -type d | xargs rm -rf
    

3. 调整Vercel配置

  • 修正vercel.json中的maxLambdaSize参数:当前设置的15MB远低于Vercel的50MB上限,建议调整为45mb,让构建工具尽可能压缩函数包:
    {
        "builds": [
            {
                "src": "shopwise/wsgi.py",
                "use": "@vercel/python",
                "config": {
                    "maxLambdaSize": "45mb",
                    "runtime": "python3.9"
                }
            }
        ],
        "routes": [
            {
                "src": "/static/(.*)",
                "dest": "/static/$1"
            },
            {
                "src": "/(.*)",
                "dest": "shopwise/wsgi.py"
            }
        ]
    }
    
  • 分离静态资源:通过上述路由配置,让Vercel单独托管static目录下的静态文件,避免将静态资源打包进Serverless函数。部署前需运行python manage.py collectstatic将静态文件收集到static目录。

4. 拆分函数或改用Edge Functions

  • 如果依赖体积仍无法压缩到50MB以内,可将部分业务逻辑拆分为独立的Serverless函数,分散单个函数的体积。
  • 考虑使用Vercel Edge Functions替代部分接口逻辑:Edge Functions体积限制更宽松,且启动速度更快,适合处理轻量请求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 19:01:27