我可以更改 Azure Function Event Hub 触发器启动检查点吗?

2023-12-28

当我使用新的消费者组建立一个新的 Azure Function 来侦听我们的事件中心时,它会获取曾经发送到事件中心的所有消息,甚至是几个月前的消息。我认为将集线器上的消息保留设置为一天会限制这一点,但显然不是。不管怎样,我真的只希望新的 Azure 函数从初始部署或测试点开始接收事件,但是我不知道如何指定初始启动检查点,因为这些东西是由 AF 在存储中神奇地完成的。

如果我手动执行集线器逻辑,我可以指定此检查点并从任意时间(例如当前时间)开始。有没有办法用 Azure 函数复制这个?


好消息是,是的,您可以更改检查点。那里没有太多魔力:检查点存储在 Blob 存储中 ->azure-webjobs-eventhubsblob 中的容器,其名称如下yournamespace.servicebus.windows.net/yourhub/$Default/X, where $Default是消费者组名称和X是分区号。

下面是此类 blob 的示例:

{"PartitionId":"0","Owner":null,"Token":null,"Epoch":567,"Offset":"14992",
 "SequenceNumber":156}

坏消息是,您需要知道您想要开始的那一刻的偏移量,而您可能不知道。然后,您需要继续手动或使用自定义代码修改 blob。您应该在 Function App 启动之前执行此操作。

由您决定是否可以/想要这样做。 AFAIK,没有简单且官方的方法来实现这一点。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我可以更改 Azure Function Event Hub 触发器启动检查点吗? 的相关文章

随机推荐