使用 azure cli 将 python 应用部署到现有的 azure 应用服务

Deploy python app to existing azure app service with azure cli

我想使用 azure cli 从 bitbucket 管道将 python 应用程序部署到现有的 azure 应用程序服务,但我发现只有一种方法可以部署 python 应用程序到 Azure 应用服务 (docs)

az webapp up --name <app_name>

这似乎不适用于已创建的 Azure 应用程序服务。我还发现它不能用于部署到此 comment

中的现有应用程序

因为我想 运行 从 bitbucket local git 它不是我的选择。我也不希望通过部署中心与 bitbucket 直接集成,因为我想从 bitbucket 按需触发部署。

例如,您可以通过 运行 执行以下操作轻松部署 .net 带有 zip 部署的应用程序:

az webapp deployment source config-zip --resource-group <resource_group> --name <app_name> --src <zip_name>

你能为 python 做类似的事情吗?

下面的脚本创建了一个新的网络应用程序,并部署了您发送的文档中的 python flask 示例。它根据需要使用 az webapp deployment source config-zip 。值得探索的配置部分是设置 SCM_DO_BUILD_DURING_DEPLOYMENT=true 在部署期间描述 here. When set to true there are additional steps 运行,例如安装 python 个软件包。

    az group create -n <some_name> --location westus
    az appservice plan create --name <some_name> -g <some_name> --sku s1 --location westus --is-linux
    az webapp create -g <some_name> -n <some_globaly_unique_name> --plan <some_name> --runtime "PYTHON|3.7"
    az webapp config appsettings set -g <some_name> -n <some_globaly_unique_name> --settings WEBSITE_RUN_FROM_PACKAGE="1"
    az webapp config appsettings set -g <some_name> -n <some_globaly_unique_name> --settings SCM_DO_BUILD_DURING_DEPLOYMENT=true
    az webapp restart -n <some_globaly_unique_name> -g <some_name>

    git clone https://github.com/Azure-Samples/python-docs-hello-world
    cd .\python-docs-hello-world\
    Compress-Archive -Path * -DestinationPath package.zip
    az webapp deployment source config-zip -n <some_globaly_unique_name> -g <some_name> --src .\package.zip

请注意,我使用了 Compress-Archive,如果您不使用 Powershell,则需要以不同的方式创建一个 zip 包。