Azure functions 我可以更改Azure函数事件中心触发器启动检查点吗?

Azure functions 我可以更改Azure函数事件中心触发器启动检查点吗?,azure-functions,azure-eventhub,Azure Functions,Azure Eventhub,当我建立一个新的Azure函数来监听我们的事件中心时,它会与一个新的消费者组一起获取所有发送到事件中心的消息,即使是几个月前的消息。我认为将集线器上的消息保留设置为一天会限制这一点,但显然不是。无论如何,我真的只希望新的Azure函数从初始部署或测试点开始接收事件,但是我不知道如何指定初始的开始检查点,因为这些事情是由AF在存储中神奇地完成的 如果我手动执行集线器逻辑,我可以指定此检查点并从任意时间开始,例如当前时间。有没有办法用Azure函数复制此功能?好消息是,您可以更改检查点。这里并没有什

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


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

好消息是,您可以更改检查点。这里并没有什么神奇之处:检查点存储在Blob存储->
azure webjobs eventhubs
容器中的Blob中,其名称类似于
yournamespace.servicebus.windows.net/yourhub/$Default/X
,其中
$Default
是消费者组名,
X
是分区号

以下是此类blob的一个示例:

{“PartitionId”:“0”,“Owner”:null,“Token”:null,“Epoch”:567,“Offset”:“14992”,
“SequenceNumber”:156}
坏消息是,你需要知道你想要开始的那一刻的偏移量,而你可能不知道。然后,您需要继续手动或使用自定义代码修改blob。你应该在功能应用程序启动之前完成


由你决定你是否能/想那样做。好吧,要做到这一点,没有简单而正式的方法。

我发现了这一点。我使用了另一个函数,基本上复制了历元、偏移量和SequenceNumber,但它似乎从一开始就在处理(或者比它应该处理的消息多得多)。@Josh函数开始工作后,它是否更改了您的值?它们是在增长,还是一开始就下降了?它确实改变了它们,所有三个值都增加了。历元为1,偏移量约为10k,SequenceNumber为40。我可以通过复制一组现有的检查点文件并将Token和Owner更改为null来实现这一点,而不必碰数字。我只是删除了它们并重新处理了所有内容。成功了,谢谢!