如何在Azure App Service部署FastAPI?部署报错求助
部署FastAPI到Azure App Service持续报错
问题详情
尝试将简单FastAPI部署到Azure App Service,本地运行正常,但部署后持续报错:
本地运行命令:uvicorn main:app
API代码
from fastapi import FastAPI app = FastAPI() @app.get('/') async def welcome(): return {'message':'Welcome to My website!'}
部署相关配置
- 已创建
startup.sh,尝试过以下启动命令:gunicorn -w 2 -k uvicorn.workers.UvicornWorker main:apppython -m uvicorn main:appgunicorn --bind=0.0.0.0 --timeout:600 main:app - App Service配置:

- 定价层级:

- 部署管道无异常:

解决步骤
1. 补全依赖清单
确保项目根目录存在requirements.txt,包含所有必要依赖:
fastapi uvicorn gunicorn
Azure App Service会自动读取该文件安装依赖,缺失依赖会直接导致启动失败。
2. 修正启动命令
Azure要求Web应用绑定到0.0.0.0和指定端口(优先使用环境变量$PORT),更新startup.sh为以下命令之一:
- 使用gunicorn+uvicorn worker:
gunicorn -w 2 -k uvicorn.workers.UvicornWorker main:app --bind=0.0.0.0:$PORT - 直接用uvicorn启动:
python -m uvicorn main:app --host 0.0.0.0 --port $PORT
3. 设置脚本可执行权限
在本地项目中执行以下命令,给startup.sh添加可执行权限,再提交部署:
chmod +x startup.sh
否则Azure无法执行该启动脚本。
4. 查看Azure日志定位细节
进入Azure App Service控制台,通过日志流查看启动时的具体错误:
- 导航到App Service → 左侧菜单「监测」→「日志流」
- 日志会显示依赖缺失、端口占用、脚本执行失败等具体问题,是排查核心依据。
5. 匹配Python版本
确保Azure App Service配置的Python版本和本地开发环境一致:
- 在App Service「配置」→「常规设置」中检查Python版本,和本地
python --version输出匹配,避免版本兼容问题。
内容的提问来源于stack exchange,提问作者chutzpah
相关产品推荐
相关产品推荐

