WEBSITE_RUN_FROM_PACKAGE="1" 和 SCM_DO_BUILD_DURING_DEPLOYMENT=true 是否与 Linux 上的 ZipDeploy Azure 应用服务 Python WebApp 兼容?

问题描述 投票:0回答:1

Linux 上的 ZipDeploy Azure 应用服务 Python WebApp 的

WEBSITE_RUN_FROM_PACKAGE="1"
SCM_DO_BUILD_DURING_DEPLOYMENT=true
选项是否兼容? 另外,我的网络应用程序正在使用gunicorn,如果这很重要的话。

当我将 python web 应用程序部署为 zip 文件时,其中包括我的 python 文件和requirements.txt(但没有 venv)。前命令:

az webapp deploy --resource-group "$resource_group_name" --name "$app_name" --type "zip" --src-path "backend.zip"

我的假设是我的 web 应用程序将由 Oryx 构建,然后 Kudu 会将包(现在包含 venv 的 zip)上传到

/home/data/SitePackages
,并在同一目录中使用
packagename.txt
。 然后它将通过安装包来运行它
/home/site/wwwroot

python web-applications azure-web-app-service gunicorn azure-appservice
1个回答
0
投票

如果要将 Python 应用程序部署到 Linux Azure 应用服务,请添加名为 SCM_DO_BUILD_DURING_DEPLOYMENT

setting
并将值设置为
true
或 1,它会在部署期间触发 Oryx 构建。 Linux 应用服务不需要
WEBSITE_RUN_FROM_PACKAGE=1

部署 ZIP 包时,应用服务会将其内容解压到路径

home\site\wwwroot
(对于 Windows)、
/home/site/wwwroot
(对于 Linux)。

默认情况下,部署引擎假定 ZIP 包已准备好运行并且不运行任何构建自动化。

要启用远程构建自动化,请设置

SCM_DO_BUILD_DURING_DEPLOYMENT
应用程序设置。它控制构建行为并允许项目在部署期间远程构建。

WEBSITE_RUN_FROM_PACKAGE=1

将应用程序部署到 Windows 应用服务时使用此设置。 t 自动将包上传到

d:\home\data\SitePackages
文件夹。


我使用以下命令将 python 应用程序 Zip 部署到 Linux Azure 应用服务:

az webapp deploy --resource-group "<rgname>" --name "<appname>" --type "zip" --src-
path "<projectname.zip>"

enter image description here

  • 在 Web 应用程序的应用程序设置中添加了

    SCM_DO_BUILD_DURING_DEPLOYMENT=true

  • 此设置有助于自动化构建:

enter image description here

  • 添加gunicorn命令作为启动命令:
gunicorn --bind=0.0.0.0 --timeout 600 --chdir appname app:app

回复:

enter image description here

参考资料:

配置 Linux Python 应用程序 - Azure 应用服务

© www.soinside.com 2019 - 2024. All rights reserved.