azure-functions - 在 Azure 持久函数更改状态时获取事件
问题描述
我想监视 Azure Durable Orchestrator Function 的运行实例是否有更改(例如它何时完成、失败等)
我知道我可以轮询状态 API 的更改,但我想知道是否有任何基于推送的功能。我查看了源代码,但似乎找不到任何线索来支持此功能的扩展点、接口等。
关于如何实现这一目标的任何想法?
谢谢!
解决方案
目前,发布编排生命周期事件(例如创建、完成和失败)仅限于自定义Azure 事件网格主题。此功能目前处于预览阶段。请参阅将 Durable Functions 发布到 Azure 事件网格(预览版)。
耐用功能 2.x
将notifications
部分添加到durableTask
文件的属性中,替换<topic_name>
为您选择的名称。如果durableTask
orextensions
属性不存在,请像以下示例一样创建它们:
{
"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}
将是Running
,Completed
,Failed
, 和Terminated
.data
:持久功能特定参数。hubName
:任务中心名称。functionName
:Orchestrator 函数名称。instanceId
: 持久函数 instanceId。reason
:与跟踪事件相关的附加数据。有关详细信息,请参阅Durable Functions (Azure Functions) 中的诊断runtimeStatus
:编排运行时状态。正在运行、已完成、失败、已取消。
eventType
:“协调器事件”eventTime
:事件时间(UTC)。dataVersion
:生命周期事件模式的版本。metadataVersion
:元数据的版本。topic
:事件网格主题资源。