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

如何从ADF调用带参数的Azure函数并解决NotFound错误

解决ADF调用Azure函数返回NotFound的问题

问题复现

Python编写的Azure HTTP触发函数,通过POST请求调用指定端点可成功执行,但使用ADF的Azure函数活动调用时,始终返回NotFound错误,尝试过在函数名称中拼接参数、请求体传参等方式均无效。

核心错误原因

ADF的Azure函数活动对参数传递有明确规则:

  • 函数名称字段仅允许填写纯函数名,不能拼接查询参数(这会导致ADF构造的请求路径错误,无法匹配函数端点)
  • 若函数通过URL查询参数接收参数,需在ADF活动的查询参数区域配置,而非请求体或函数名称中
  • 忽略函数密钥配置(Postman可能已隐式携带密钥,ADF链接服务未配置导致权限验证失败,表现为NotFound)

正确配置步骤

  1. 配置Azure函数链接服务

    • 确保链接服务的函数应用URL为https://fun-cus-textprep-dev.azurewebsites.net
    • 在链接服务的函数密钥字段,填入函数应用的访问密钥(可从Azure门户函数应用的「应用密钥」中获取,推荐使用_host密钥或函数专用密钥)
  2. 配置Azure函数活动

    • 函数名称:仅填写textgenerationtrigger(纯函数名,不带任何参数)
    • 请求方法:选择POST(与Postman调用方式一致)
    • 查询参数:添加以下键值对,用管道参数动态填充:
      • 键:DatabaseName,值:@{toLower(pipeline().parameters.DatabaseName)}
      • 键:CompanyId,值:@{pipeline().parameters.CompanyId}
      • 键:TeamId,值:@{pipeline().parameters.TeamId}
      • 键:AssessmentId,值:@{pipeline().parameters.AssessmentId}
    • 请求体:留空{}(函数通过查询参数接收参数,无需请求体)

额外排查点

  • 验证Azure函数的HTTP触发路由:确认函数代码中route属性是否为textgenerationtrigger(若自定义了路由,需与ADF填写的函数名称完全一致)
  • 检查函数应用防火墙:若函数应用设置了IP限制,需将ADF集成运行时的出站IP地址添加到函数应用的允许列表中
  • 核对ADF请求构造:运行管道后查看监控日志,确认实际发送的请求URL与Postman中的格式一致(确保查询参数正确拼接)

内容的提问来源于stack exchange,提问作者sunil kumar ampolu

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 23:00:57