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

Linux上Azure App Service Python应用ZipDeploy时,两个配置项兼容吗?

问题解答

1. WEBSITE_RUN_FROM_PACKAGE="1"与SCM_DO_BUILD_DURING_DEPLOYMENT=true的兼容性

这两个配置项完全兼容,且功能互补:

  • SCM_DO_BUILD_DURING_DEPLOYMENT=true:触发部署阶段的自动构建流程,由Oryx负责解析requirements.txt、安装依赖、生成虚拟环境(venv),确保应用运行所需的依赖全部就绪。
  • WEBSITE_RUN_FROM_PACKAGE="1":启用后,App Service会将构建完成的打包文件(包含应用代码和venv)以只读挂载的方式加载到/home/site/wwwroot,避免每次启动重复解压和依赖安装,大幅提升应用启动速度和稳定性。

注意:启用WEBSITE_RUN_FROM_PACKAGE后,/home/site/wwwroot会变为只读目录,若应用需要写入文件,需将写入路径指向/home下的其他可写目录(如/home/site/data)。

2. 部署流程的正确性验证

你的假设基本正确,完整流程如下:

  • 执行az webapp deploy --resource-group "$resource_group_name" --name "$app_name" --type "zip" --src-path "backend.zip"命令上传包含Python代码和requirements.txt的zip包后,Kudu部署服务触发部署流程。
  • 因SCM_DO_BUILD_DURING_DEPLOYMENT=true,Oryx自动检测Python运行环境,读取requirements.txt并在临时目录安装所有依赖,生成虚拟环境。
  • Oryx将应用代码、venv及其他构建产物打包为一个zip文件,上传至/home/data/SitePackages目录,同时生成packagename.txt文件记录该zip包的名称。
  • 由于WEBSITE_RUN_FROM_PACKAGE="1",App Service将/home/data/SitePackages目录下的目标zip包挂载为/home/site/wwwroot(只读),随后启动gunicorn运行你的Python应用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 06:32:39