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

Azure App Service中FastAPI服务器未按指定端口运行问题排查

问题

我在Azure App Service上部署FastAPI服务器,通过关联GitHub代码(未使用容器),设置启动命令为python -m uvicorn routes:app --host 0.0.0.0 --port 8000。访问https://fastapi-sappv01.azurewebsites.net:8000/时出现错误;同时我的Streamlit前端向服务器发送请求时触发requests.exceptions.ConnectionError报错。现咨询:

  1. 如何调试该问题?
  2. 如何查看服务器端日志(含代码中的print语句)?
  3. 若不指定--port参数,服务器默认运行在哪个端口?

解答

1. 调试问题的步骤

  • 修正访问端口:Azure App Service对外仅开放80(HTTP)和443(HTTPS)端口,直接访问8000端口会失败。应使用https://fastapi-sappv01.azurewebsites.net/访问服务,前端请求地址也需同步修改,不要附加端口号。
  • 验证启动命令路径:确认routes.py文件位于项目根目录,若文件在子目录,需调整启动命令的模块路径(例如src.routes:app)。
  • 本地复现验证:在本地环境使用相同启动命令运行服务,测试接口是否正常,排除代码本身的逻辑问题。
  • 核对Python版本:确保Azure App Service配置的Python版本与本地开发环境一致,避免版本兼容性错误。
  • 检查部署状态:在Azure门户查看App Service的部署记录,确认GitHub代码已成功部署,无部署失败提示。

2. 查看服务器端日志的方法

  • 实时日志流:进入Azure门户的目标App Service资源页,左侧菜单选择「日志」→「日志流」,可实时查看服务运行日志,包括代码中的print输出和uvicorn框架日志。
  • Kudu控制台查看日志文件:在App Service的「高级工具」中打开Kudu控制台,进入LogFiles目录,可查看具体的日志文件(如python_django.log或uvicorn相关日志)。
  • 持久化日志存储:在「日志」→「应用程序日志」中配置存储账户,开启日志持久化,日志会保存到指定存储账户,方便后续回溯查看。

3. uvicorn默认端口

uvicorn未指定--port参数时,默认运行在8000端口。需要注意的是,Azure App Service会自动将外部80/443端口的请求转发到应用监听的端口,建议启动命令中使用--port $PORT读取环境变量,适配平台默认配置。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 10:01:08