You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure DevOps部署Python函数报错:1个函数找到但0个加载+requests缺失

问题分析与解决方案

1. 解决ModuleNotFoundError: No module named 'requests'

  • 确保项目根目录存在requirements.txt,且明确包含requests(无拼写错误)。本地环境可能依赖全局包,Pipeline必须显式安装指定路径下的依赖才能被Azure Functions识别。
  • 在Pipeline的Build阶段添加依赖安装命令,必须将依赖安装到Azure Functions默认识别的路径:
    pip install --target="./.python_packages/lib/site-packages" -r requirements.txt
    
  • 若使用Azure Functions Deploy任务,需勾选Publish using Azure Functions Core Tools,确保部署包包含.python_packages目录。

2. 解决1 functions found (Custom) 0 functions loaded及404问题

该问题源于函数运行时无法识别有效函数定义,排查方向:

  • 代码结构校验:
    • 若使用v3模型(FunctionApp类),确认function_app.py中的装饰器配置正确,示例:
      import azure.functions as func
      import requests
      
      app = func.FunctionApp(http_auth_level=func.AuthLevel.ANONYMOUS)
      
      @app.route(route="my_trigger")
      def my_trigger(req: func.HttpRequest) -> func.HttpResponse:
          return func.HttpResponse("Success", status_code=200)
      
    • 若使用旧版本模型,需保证每个函数在独立子目录下,子目录包含function.json和对应__init__.py文件,路径结构符合Azure要求。
  • 部署完整性检查:通过Azure Portal的Kudu工具(高级工具)进入site/wwwroot目录,确认function_app.py、host.json、.python_packages等文件/目录均已部署,且内容与本地一致。
  • 版本一致性:确保Azure Functions配置的Python版本,与Pipeline、本地开发环境完全匹配(如均为3.9或3.10),版本不兼容会导致函数加载失败。

3. 对齐本地与Pipeline的部署逻辑

本地func azure functionapp publish fn-elphi-etl-dev --build remote能成功,是因为该命令自动在Azure远程环境完成依赖安装、打包、部署流程。建议直接在Pipeline中复用该命令:

func azure functionapp publish fn-elphi-etl-dev --build remote

避免手动构建时的路径、依赖配置偏差,完全复刻本地成功的部署逻辑。

4. 验证部署状态

  • 登录Azure Portal,进入函数应用的函数页面,查看是否有函数加载成功。
  • 在Kudu调试控制台执行python -c "import requests",验证依赖是否可正常导入。

内容的提问来源于stack exchange,提问作者user1694767

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 07:16:04