如何从Azure Data Factory触发Azure Durable Functions及报错排查
问题解决方案
你选择的活动类型没有错误,Azure Function活动就是从Azure Data Factory触发Durable Functions的官方推荐方式,报错由配置错误和代码未适配导致,可按以下步骤排查修复:
直接诱因
- 函数路径配置错误:你在Linked Service中填写的
orchestrators/{HelloOrchestrator}包含不必要的占位符标记{},实际调用时无需添加大括号,正确路径为orchestrators/HelloOrchestrator - 代码未适配输入参数:你使用的官方快速入门示例代码默认没有处理自定义请求体参数,直接传入
{"timezone":"Eastern Standard Time"}会引发函数内部参数解析错误,触发500响应。
修复步骤
- 先通过Postman或curl工具向你的Durable Function地址发起POST测试请求:
若该请求返回500错误,先调整函数代码适配参数接收:在HTTP Starter函数中读取请求Body内容,通过curl -X POST https://<你的函数应用名>.azurewebsites.net/api/orchestrators/HelloOrchestrator \ -H "Content-Type: application/json" \ -d '{"timezone":"Eastern Standard Time"}'start_new方法传递给编排器,再在编排器中通过上下文对象读取传入参数即可。 - 确认POST请求直接调用可以正常返回202响应后,修改ADF中的Linked Service配置,将函数名称替换为
orchestrators/HelloOrchestrator - 保留POST请求方法和自定义请求体,重新触发ADF管道即可正常运行。
内容的提问来源于stack exchange,提问作者Kenny_I
相关产品推荐
相关产品推荐

