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

Azure Web App部署后启动失败:已移除权限orders_justification_read仍被检测

问题

使用ZIP Deploy将Python/React应用部署到Azure Web App后,应用启动失败,报错如下:

ValueError: Permission code orders_justification_read is defined in PERMISSIONS but is not used in the application

该权限代码orders_justification_read存在于上一次部署中,但现已移除。部署前已重新生成完整构建文件夹,并确认:

  • 当前源代码中无任何对orders_justification_read权限的引用;
  • 已部署的site/wwwroot目录下无该权限的任何痕迹。

尽管如此,应用启动时仍会验证该已移除的权限,导致崩溃。

上下文信息:

  • 使用自定义build_app.py脚本准备仅包含必要文件的ZIP包;
  • 通过Azure DevOps的AzureWebApp@1任务以ZIP Deploy模式部署;
  • 怀疑Azure端缓存或保留了旧文件,尽管上传的构建包中无该过时权限。

请问:是否有人遇到过Azure Web App引用已不在wwwroot中的代码这类问题?ZIP Deploy是否存在已知的缓存行为或部署不一致情况可解释该问题?

排查与解决思路

这类问题确实不少开发者遇到过,主要和Azure Web App的几个缓存/残留机制有关,以下是常见原因和对应解决办法:

  • Python虚拟环境残留:Azure Web App默认会缓存Python虚拟环境(路径通常为antenv),旧依赖包或编译后的.pyc字节码文件可能残留其中,导致加载过时的权限定义。可以通过Kudu控制台删除antenv目录后重启应用,或者在部署脚本中添加清理虚拟环境的步骤。
  • ZIP Deploy增量更新特性:ZIP Deploy默认采用增量部署逻辑,仅更新有变化的文件,不会主动删除已不存在于新ZIP包中的旧文件。如果自定义build_app.py生成的包未正确处理文件删除操作,可能导致旧文件残留。可以在AzureWebApp@1任务中添加clean: true参数,强制部署前完全清理wwwroot目录。
  • 应用进程缓存:即便文件已更新,正在运行的应用进程可能仍在使用内存中加载的旧代码。部署完成后强制重启Web App,确保进程加载新的代码文件。
  • 外部配置/存储残留:检查应用是否依赖Azure App Configuration、Key Vault或site/data等本地存储目录保存权限配置,这些位置可能残留旧的权限定义,需要同步清理。

另外,可通过Kudu控制台(https://<你的应用名>.scm.azurewebsites.net/)查看wwwroot之外的目录(如temp、antenv),确认是否有旧文件残留。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 12:03:09