Azure 事件网格空事件

Posted

技术标签:

【中文标题】Azure 事件网格空事件【英文标题】:Azure Event Grid Empty Event 【发布时间】:2022-01-15 01:47:28 【问题描述】:

我正在寻找一种在事件网格主题没有更多排队事件时得到通知的方法。我希望像许多 Azure 服务一样的事件网格可以在某些发生的事情上发出事件,但似乎并非如此。理想情况下,我希望避免轮询主题以检查队列是否为空。

事件网格主题不经常使用,但当它使用时,它会收到大约 100 万个事件的转储,这将需要一两个小时才能让 Azure 函数订阅者仔细阅读。我正在寻找一种“队列为空”的通知,这样我就可以完成一些目前我必须手动完成的后处理任务。

【问题讨论】:

您确定不需要适当的队列而不是事件网格吗? 【参考方案1】:

您可以在查看指标的 Azure 事件网格上创建警报,然后将其发送到您想要的任何地方 - 事件中心、逻辑应用程序或 Azure 函数。

这是文档的链接:

https://docs.microsoft.com/en-us/azure/event-grid/set-alerts#create-alerts-on-other-metrics-or-activity-log-operations

【讨论】:

【参考方案2】:

Azure 事件网格 (AEG) 是 PUSH 事件 Pub/Sub 模型,因此没有轮询主题。但是,使用 Azure 服务总线 (ASB) 等目标资源,您可以根据消费者端的需求从其队列实体中提取事件消息。

ASB(高级层)是 AEG 的 integrated,用于根据队列中的消息及其侦听器/接收器活动发出事件。适用于消息量较少的情况,避免不断轮询队列中的消息。

请参阅我的回答 here,了解 ASB 将向 AEG 发出事件的情况。基于此,您可以为您的场景构建一个重新触发的计时器(看门狗)。

【讨论】:

以上是关于Azure 事件网格空事件的主要内容,如果未能解决你的问题,请参考以下文章

诊断 Azure 事件网格中的故障?

用于增加侦听器的 Azure 事件网格

Azure Web PubSub 和事件网格/事件中心之间有啥区别?

“排队”的 Azure 事件网格 Blob 触发器事件消息存储在哪里,如何清除它们?

使用内置触发器或事件网格的 Azure 函数

Azure 事件中心 Event Grid(事件网格)+Azure Functions处理IOT Hub中的消息