如何通过 Azure 数据工厂调用带有 Web 挂钩的 Azure Durable Functions? -发生超时

How to call Azure Durable Functions with Web hook with Azure Data Factory? -Timeout occurs

我已完成 Durable Function Python 教程并部署到 Azure Functions。 https://docs.microsoft.com/en-us/azure/azure-functions/durable/quickstart-python-vscode

我已经成功测试了 http://.azurewebsites 的触发功能。net/api/orchestrators/HelloOrchestrator

如何使用 Azure 数据工厂触发?

  1. 我尝试从 Azure 数据工厂添加“Web Hook”activity
  2. Url 是:https://durablefunctionappxxxxx.azurewebsites.net/api/orchestrators/HelloOrchestrator
  3. 方法已设置POST
  4. 正文{}
  5. 触发成功
  6. 管道运行显示持续时间 8:36 和状态“进行中”。
  7. 管道运行最终在 10:03 上出现错误“对目标 Durable WebHook1 的操作失败:Activity 超时”
  8. 我在 Activity Azure Functions
  9. 日志中没有看到 activity

请教我如何触发持久函数。 我也想获得一些状态信息。

您可以使用“Azure 函数”activity 调用持久函数,方法是将 Orchestrator 函数名称传递给 activity。以您的示例函数应用程序为例,您需要像下面这样传递函数名称来启动 Orchestrator。

此 Activity 将 return 具有不同 URI 的响应,例如 statusQueryGetUri 一旦业务流程成功启动。 (见下面的截图)

现在,为了调用任何特定端点,如 statusQueryGetUri,您可以添加一个 Web Activity传递从之前 activity 收到的 url ,如下所示 - @activity('<AzureFunctionActivityName>').output.statusQueryGetUri

管道执行成功后,您应该能够将结果作为 Web 的输出 Activity。

参考文档 - Azure Function activity in Azure Data Factory