Python Azure Functions 和 Bitbucket 管道 - 如何压缩要求?
Python Azure Functions and Bitbucket Pipelines - how do I zip requirements?
我一直在尝试了解如何使用 Bitbucket 管道将我的 Python Function App 部署到 Azure。
我已经在网上阅读了一些答案,一旦我压缩了我的 python 应用程序,这似乎很简单。
使用此答案可以轻松完成:Azure Function and BitBucket build pipelines
script:
- pipe: microsoft/azure-functions-deploy:1.0.2
variables:
AZURE_APP_ID: $AZURE_APP_ID
AZURE_PASSWORD: $AZURE_PASSWORD
AZURE_TENANT_ID: $AZURE_TENANT_ID
FUNCTION_APP_NAME: '<string>'
ZIP_FILE: '<string>'
但是,我这辈子都找不到 Azure Functions 期望 zip 文件采用的格式。
要求去哪儿了?更好的是 - 在此之前出现的管道规范创造了备受追捧的 ZIP_FILE?
谢谢!
最终找到了散落在不同地方的答案:
image: python:3.8
pipelines:
branches:
master:
- step:
name: Build function zip
caches:
- pip
script:
- apt-get update
- apt-get install -y zip
- pip install --target .python_packages/lib/site-packages -r requirements.txt
- zip -r function.zip .
artifacts:
- function.zip
- step:
name: Deploy zip to Azure
deployment: Production
script:
- pipe: microsoft/azure-functions-deploy:1.0.0
variables:
AZURE_APP_ID: $AZURE_APP_ID
AZURE_PASSWORD: $AZURE_PASSWORD
AZURE_TENANT_ID: $AZURE_TENANT_ID
ZIP_FILE: 'function.zip'
FUNCTION_APP_NAME: $FUNCTION_NAME
我试过这个解决方案并且也适用于我,但是有一个弃用问题。管道 microsoft/azure-functions-deploy 正在为 azure cli 使用已弃用的图像:microsoft/azure-cli, you can read this here。
所以你可以使用这个 pipe 的 atlassian 版本但是 python 对我不起作用因为在命令中:
az functionapp deployment source config-zip...
没有指定 --build-remote。
所以我的解决方案不是使用管道,而是使用 azure-cli 命令编写步骤:
- step:
name: Deploy on Azure
image: mcr.microsoft.com/azure-cli:latest
script:
- az login --service-principal --username ${AZURE_APP_ID} --password ${AZURE_PASSOWRD} --tenant ${AZURE_TENANT_ID}
- az functionapp deployment source config-zip -g ${RESOURCE_GROUP_NAME} -n 'functioAppName' --src 'function.zip' --build-remote
这是一个适用于我的案例的步骤,另一个解决方案可以是编写一个使用 this
的步骤
我一直在尝试了解如何使用 Bitbucket 管道将我的 Python Function App 部署到 Azure。
我已经在网上阅读了一些答案,一旦我压缩了我的 python 应用程序,这似乎很简单。 使用此答案可以轻松完成:Azure Function and BitBucket build pipelines
script:
- pipe: microsoft/azure-functions-deploy:1.0.2
variables:
AZURE_APP_ID: $AZURE_APP_ID
AZURE_PASSWORD: $AZURE_PASSWORD
AZURE_TENANT_ID: $AZURE_TENANT_ID
FUNCTION_APP_NAME: '<string>'
ZIP_FILE: '<string>'
但是,我这辈子都找不到 Azure Functions 期望 zip 文件采用的格式。
要求去哪儿了?更好的是 - 在此之前出现的管道规范创造了备受追捧的 ZIP_FILE?
谢谢!
最终找到了散落在不同地方的答案:
image: python:3.8
pipelines:
branches:
master:
- step:
name: Build function zip
caches:
- pip
script:
- apt-get update
- apt-get install -y zip
- pip install --target .python_packages/lib/site-packages -r requirements.txt
- zip -r function.zip .
artifacts:
- function.zip
- step:
name: Deploy zip to Azure
deployment: Production
script:
- pipe: microsoft/azure-functions-deploy:1.0.0
variables:
AZURE_APP_ID: $AZURE_APP_ID
AZURE_PASSWORD: $AZURE_PASSWORD
AZURE_TENANT_ID: $AZURE_TENANT_ID
ZIP_FILE: 'function.zip'
FUNCTION_APP_NAME: $FUNCTION_NAME
我试过这个解决方案并且也适用于我,但是有一个弃用问题。管道 microsoft/azure-functions-deploy 正在为 azure cli 使用已弃用的图像:microsoft/azure-cli, you can read this here。 所以你可以使用这个 pipe 的 atlassian 版本但是 python 对我不起作用因为在命令中:
az functionapp deployment source config-zip...
没有指定 --build-remote。
所以我的解决方案不是使用管道,而是使用 azure-cli 命令编写步骤:
- step:
name: Deploy on Azure
image: mcr.microsoft.com/azure-cli:latest
script:
- az login --service-principal --username ${AZURE_APP_ID} --password ${AZURE_PASSOWRD} --tenant ${AZURE_TENANT_ID}
- az functionapp deployment source config-zip -g ${RESOURCE_GROUP_NAME} -n 'functioAppName' --src 'function.zip' --build-remote
这是一个适用于我的案例的步骤,另一个解决方案可以是编写一个使用 this
的步骤