部署Flask的app.py到Azure Web App遇应用错误及SSH异常求助
Flask应用部署Azure Web App应用错误排查方案
核心排查步骤
配置正确的启动命令
Azure Web App不会自动识别Flask启动逻辑,需在门户「配置」→「常规设置」中设置启动命令:gunicorn --bind=0.0.0.0 --timeout 600 app:app
注意:若你的Flask实例变量名不是app(比如代码里是myapp = Flask(__name__)),要改成app:myapp。校验requirements.txt完整性
确保文件包含生产环境必需依赖,至少要有:Flask gunicorn本地开发用的werkzeug无法满足生产环境需求,必须添加gunicorn作为WSGI服务器。
查看日志定位具体错误
无需依赖SSH,可通过Azure门户「监测」→「日志流」查看实时运行日志;或进入「高级工具」→「Kudu」的「Debug console」,查看LogFiles目录下的application.log和stdout.log,里面会记录具体报错(如依赖缺失、代码语法错误、端口冲突等)。修正端口配置逻辑
不要硬编码端口,改用环境变量获取Azure分配的端口:import os from flask import Flask app = Flask(__name__) # 你的API路由逻辑... if __name__ == "__main__": port = int(os.environ.get("PORT", 5000)) app.run(host="0.0.0.0", port=port)确认仓库文件结构
保证app.py和requirements.txt放在GitHub仓库根目录,若文件在子文件夹,启动命令需指定路径,比如:gunicorn --bind=0.0.0.0 src.app:app(假设文件在src文件夹下)。
额外注意事项
- 在Azure门户「配置」→「常规设置」中指定与本地开发一致的Python版本,避免版本兼容问题。
- 可在Kudu的Debug console中手动执行
pip install -r requirements.txt和启动命令,验证应用是否能正常启动,排查部署过程中的依赖安装问题。
内容的提问来源于stack exchange,提问作者N00BtRaDeR
相关产品推荐
相关产品推荐

