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

Azure App Service部署Flask+Immersive Reader时8000端口无响应报错

Flask + Immersive Reader 部署Azure App Service启动失败排查方案

问题核心

Azure的健康探测无法连接8000端口,本质是部署后的Flask应用未正确对外监听端口,或启动配置存在问题。

一步步修复

1. 修正Flask启动代码

本地调试默认用127.0.0.1(仅本地可访问),Azure容器内必须监听0.0.0.0才能被外部探测到,同时端口需设为8000:

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=8000)

2. 添加Procfile指定启动命令

Azure需要明确的启动指令,在项目根目录创建Procfile文件,根据使用的服务器选择内容:

  • 生产环境推荐用gunicorn(需提前在依赖中声明):
    web: gunicorn --bind 0.0.0.0:8000 app:app
    
    注:app:app格式为「主文件名:Flask实例名」,比如主文件是app.py,实例定义为app = Flask(__name__)就用这个写法。
  • 测试用Flask内置服务器:
    web: flask run --host=0.0.0.0 --port=8000
    

3. 检查Azure App Service配置

进入Azure门户找到你的App Service,点击配置→常规设置:

  • 启动命令可留空(自动读取Procfile),或直接填写上述gunicorn/flask命令
  • 确认端口设置为8000,与探测端口保持一致

4. 确保依赖完整

ZIP部署时Azure会自动执行pip install -r requirements.txt,需确保文件包含所有必要依赖:

Flask==2.3.3
gunicorn==21.2.0
# 补充Immersive Reader相关依赖,如requests等

5. 查看详细启动日志

若以上步骤无效,通过日志定位具体问题:

  • 门户内点击日志流实时查看启动过程
  • 或通过Kudu工具(https://<你的应用名>.scm.azurewebsites.net/DebugConsole),进入LogFiles目录查看启动日志,排查依赖缺失、代码报错等问题

6. 本地模拟部署环境测试

在本地安装gunicorn后,运行以下命令模拟Azure环境:

gunicorn --bind 0.0.0.0:8000 app:app

若能正常访问http://localhost:8000,说明代码本身无问题,问题出在部署配置环节。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 05:52:41