【发布时间】:2019-01-28 08:25:26
【问题描述】:
我在 Azure Devops 中有一个有效的构建管道,它基本上安装 Python3.6,设置虚拟环境 (.env),然后执行所有单元测试。然后,它使用复制操作作为最后一步,将所有文件(包括虚拟环境)移动到放置文件夹。
我的问题来自创建发布管道。我正在为基本上安装 azure 函数命令工具的发布管道运行 bash 脚本,然后在调用 func azure 发布指令之前激活 python 虚拟环境。
我得到的错误表明设置已加密,我需要调用 func setting add 来添加设置,但是,当在本地运行时,脚本执行时没有任何错误。
是否有人在 Azure Devops 中有一个基于 python 的 Azure 函数的工作发布管道,他们可以与我共享,这样我也许可以看到我做错了什么?
这是执行的相关脚本:
#!/usr/bin/env bash
FUNCTION_APP_NAME="secret"
FUNCTION_APP_FOLDER="evenMoreSecret"
# Install Azure Functions Core Tools
echo "--> Install Azure Functions Core Tools"
wget -q https://packages.microsoft.com/config/ubuntu/16.04/packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
sudo apt-get update
sudo apt-get install azure-functions-core-tools -y
echo ">>>>>>>> Initialize Python Virtual Environment"
source .env/bin/activate
echo "--> Publish the function app to Azure Functions"
cd $FUNCTION_APP_FOLDER
func azure functionapp publish $FUNCTION_APP_NAME --build-native-deps
该脚本使用 Azure CLI 执行,使用的安全主体绑定到它所针对的 azure 帐户。
【问题讨论】:
-
为什么不使用本机 azure devops webapp 步骤呢?
-
因为它是一个 Azure FunctionApp,而不是一个 WebApp,而且我所知道的用 Python 编写的函数没有部署步骤。
-
有没有区别?它复制文件并运行deployment.cmd,至少我是这么认为的?
-
没有deployment.cmd。 azure 函数是使用 Azure Function 核心工具创建的,它在 python 中制作了骨架项目,没有任何部署文件。 ,根据文档,它应该工作的方式是使用 azure 函数核心工具进行部署,如上面脚本的最后一行所示
标签: python-3.x bash azure-devops azure-functions continuous-deployment