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

Azure Flask应用部署后遇应用错误,尝试自动缩放仍未解决

问题排查与解决方案

核心问题拆解

  • 单实例重启停机:配置自动缩放后仍出问题,大概率是缩放规则未正确生效,或Flask启动逻辑不符合Azure App Service运行要求(后者才是Application Error的直接诱因)。
  • Flask启动代码误区:Azure部署时不会执行if __name__ == "__main__"分支,而是通过WSGI服务器(如Gunicorn)直接加载app实例,原代码的端口、启动模式配置完全无效。

Flask代码修正

1. 标准启动模板

移除本地调试的启动逻辑,确保WSGI服务器能直接识别应用实例:

from flask import Flask
import os

app = Flask(__name__)

# 示例路由
@app.route('/')
def index():
    return "Azure Flask App Running"

# 仅本地调试保留(可选)
if __name__ == "__main__":
    # 读取Azure环境变量指定的端口,默认8000
    port = int(os.environ.get('PORT', 8000))
    app.run(host='0.0.0.0', port=port, debug=False)

2. 依赖配置

项目根目录必须创建requirements.txt,添加生产环境依赖:

Flask==2.3.3
gunicorn==21.2.0

自动缩放与高可用配置验证

  • 强制多实例部署:即使自动缩放未触发,先手动设置至少2个实例(Azure门户→App Service→规模→实例计数),平台升级时只会重启单个实例,避免全局停机。
  • 修正缩放规则:确保触发条件合理(如CPU使用率≥70%扩容、≤30%缩容),且规则应用范围覆盖所有实例。
  • 配置健康检查:在Azure门户→App Service→监控→健康检查中,设置健康路径(如/),平台会自动替换不健康实例,减少服务中断。

额外排查动作

  • 查看实时日志:Azure门户→App Service→日志流,排查启动阶段的具体错误(如端口冲突、依赖缺失、代码报错)。
  • 禁用Debug模式:生产环境绝对不能开启debug=True,会引发性能、安全问题,且与WSGI服务器兼容冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 21:55:21