你好,
在使用cicd管道部署azure函数时,我得到了一个错误。错误是ModuleNotFoundError: No module named 'azure.servicebus'.,但实际情况是,在cicd管道上构建包时已经安装了服务总线模块。
使用vscode或azure直接部署时,该函数应用程序运行良好,没有任何错误。。
工作环境和功能应用程序python版本- 3.7 azure函数应用程序版本- 3.x cicd管道代理规范-ubuntu-最新的错误-

This error occurs when a function is executed. The function app was deployed using the CiCd pipeline and all dependencies are include in requirements.txt as shown below.
requirements.txt

这里是管道构建bash脚本

有人能帮忙吗?
发布于 2022-09-16 08:45:38
我可以复制你的问题:


我可以解决这个问题:

我知道你在做什么。创建虚拟环境、活动虚拟环境、将python包安装到虚拟环境中。
您提到了VS Code/CLI部署是没有问题的。
是的,正如您所观察到的,一切都应该成功地安装到虚拟环境中。
那么为什么?
原因是VS代码部署和CLI部署与虚拟环境没有任何关系,这些部署方法只关心requirements.txt文件,不检查其他文件。
而且,您所做的这些操作只在当前的代理机器上进行,而您部署到的azure函数应用程序则是另一种情况。这是一台新机器,一种新环境。
因此,您只需简单地设计如下的管道:
trigger:
- none
pool:
VMAS
steps:
- task: AzurePowerShell@5
inputs:
azureSubscription: 'testbowman_in_AAD'
ScriptType: 'InlineScript'
Inline: 'func azure functionapp publish <Your FunctionApp Name> --build remote'
azurePowerShellVersion: 'LatestVersion'VS代码和CLI的工作原理
默认情况下,Azure函数核心工具在使用以下Functions函数应用程序发布命令将您的
项目发布到Azure时请求远程构建。用Azure中函数应用程序的名称替换。默认情况下,Visual代码的Azure函数扩展还请求远程构建。
https://stackoverflow.com/questions/73729962
复制相似问题