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

FastAPI部署至Vercel后无法启动,本地运行正常求排查

部署FastAPI到Vercel失败的问题排查与解决

核心问题分析

你的FastAPI本地运行正常,但Vercel部署后出现404、端口无响应的问题,根源在于Vercel配置文件错误和对Vercel Python运行时逻辑的理解偏差,具体问题如下:

1. vercel.json 配置冲突

  • Builds 配置错误:你指定src: "main.py",但main.py是本地启动uvicorn的脚本,Vercel的@vercel/python运行时需要直接指向包含ASGI应用实例的文件(即app/api.py),而非启动脚本。
  • Routes 配置错误:dest指向app/api.py,但该路径未关联builds生成的服务入口,路由规则未正确绑定到FastAPI的ASGI服务。

2. 不必要的本地启动脚本

main.py是本地开发时启动uvicorn的文件,Vercel环境中完全不需要——Vercel会自动基于ASGI应用实例托管服务,无需手动调用uvicorn.run。


修正方案

1. 修正 vercel.json

调整配置,直接指向FastAPI的ASGI应用入口,让Vercel正确识别并托管服务:

{
    "version": 2,
    "builds": [
        {
            "src": "app/api.py",
            "use": "@vercel/python",
            "config": {
                "runtime": "python3.11" // 可指定与本地匹配的Python版本
            }
        }
    ],
    "routes": [
        {
            "src": "/(.*)",
            "dest": "app/api.py"
        }
    ]
}

2. 处理 main.py(可选)

由于Vercel不需要这个启动脚本,你可以:

  • 直接删除main.py,或
  • 在项目根目录创建.vercelignore文件,加入main.py,避免部署时上传不必要的文件。

3. 确认依赖配置

确保requirements.txt包含FastAPI和uvicorn:

fastapi>=0.100.0
uvicorn>=0.23.2

验证部署

修正后重新部署:

  • 构建日志会显示识别到Python服务,而非生成静态页面
  • 访问部署域名,根路径/会返回{"message": "Welcome to this fantastic app!"}
  • 可通过Vercel控制台的「Functions」标签查看服务运行日志(不再是静态页面日志)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 16:15:43