在 Azure Durable Function 更改状态时获取事件

Get events when an Azure Durable Function changes status

我想监视 Azure Durable Orchestrator Function 的 运行 实例的变化(比如完成、失败等)

我知道我可以轮询状态 API 进行更改,但我想知道是否有任何基于推送的功能。我查看了源代码,但我似乎无法找到支持此功能的扩展点、接口等的任何线索。

关于如何实现这一点有什么想法吗?

谢谢!

目前,发布编排生命周期事件(例如创建、完成和失败)仅限于自定义 Azure Event Grid Topic. This feature is currently in preview. Refer Durable Functions publishing to Azure Event Grid (preview)

持久的功能2.x

notifications 部分添加到文件的 durableTask 属性,将 <topic_name> 替换为您选择的名称。如果 durableTaskextensions 属性不存在,请按照以下示例创建它们:

{
  "version": "2.0",
  "extensions": {
    "durableTask": {
      "notifications": {
        "eventGrid": {
          "topicEndpoint": "https://<topic_name>.westus2-1.eventgrid.azure.net/api/events",
          "keySettingName": "EventGridKey"
        }
      }
    }
  }
}

事件架构

以下列表解释了生命周期事件架构:

  • id:事件网格事件的唯一标识符。
  • subject:事件主题的路径。 durable/orchestrator/{orchestrationRuntimeStatus}{orchestrationRuntimeStatus} 将是 RunningCompletedFailedTerminated
  • data:持久函数特定参数。
    • hubName: TaskHub 姓名。
    • functionName: Orchestrator 函数名称。
    • instanceId:持久函数 instanceId。
    • reason:与跟踪事件关联的附加数据。有关详细信息,请参阅 Diagnostics in Durable Functions (Azure Functions)
    • runtimeStatus:编排运行时状态。 运行、完成、失败、取消。
  • eventType:“orchestratorEvent”
  • eventTime:事件时间(UTC)。
  • dataVersion:生命周期事件模式的版本。
  • metadataVersion:元数据的版本。
  • topic:事件网格主题资源。