Azure Web App部署成功但未更新Flask应用,求排查建议
手动触发应用重启
部署完成后Azure App Service可能不会自动重启进程,旧代码会持续运行。可以在Azure门户的应用服务页面手动点重启,或者在Kudu控制台执行touch tmp/restart.txt,这是Python应用通用的重启触发方式。检查虚拟环境依赖状态
如果用了虚拟环境,确认Pipeline部署时有没有重新安装依赖,会不会是旧依赖缓存拖了后腿。去Kudu的wwwroot目录里查虚拟环境的包版本,或者翻部署日志看依赖安装步骤是否正常跑完。排查Flask自身缓存
如果路由返回的是模板或静态文件,Flask本身可能有缓存。可以在代码里加app.config['TEMPLATES_AUTO_RELOAD'] = True禁用模板缓存,或者临时设环境变量FLASK_DEBUG=1测试(注意生产环境别长期开debug)。确认启动配置和部署路径
检查Azure App Service的启动命令是不是指向了正确的入口文件,比如有没有设FLASK_APP=app.py(换成你的实际入口文件名),避免应用加载了旧路径的代码。同时再核对Kudu的site/wwwroot下的文件,确认修改时间和内容确实是最新提交的版本。检查部署槽位状态
如果用了部署槽位,确认更新是不是部署到了生产槽,有没有槽位交换没完成的情况。去门户里看槽位状态,确保流量是指向最新部署的槽位。查看应用运行日志
去Azure门户的应用服务“日志”板块,看应用的stdout/stderr日志,或者Kudu的LogFiles目录下的日志,排查有没有代码加载错误、依赖缺失这类问题,导致应用没法启动新代码只能 fallback 到旧版本。强制刷新worker进程
有时候App Service的worker进程没完全回收,旧代码还在跑。可以试着缩放应用实例数(比如从1调到2再调回1),强制刷新所有worker进程。
内容的提问来源于stack exchange,提问作者PK Przemek

