azure-functions - 我可以更改 Azure Functions Event Hub 触发器起始检查点吗?

标签 azure-functions azure-eventhub

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

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

最佳答案

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

以下是此类 blob 的示例:

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

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

由您决定是否可以/想要这样做。 AFAIK,没有简单而正式的方法可以做到这一点。

关于azure-functions - 我可以更改 Azure Functions Event Hub 触发器起始检查点吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47558739/

相关文章:

azure-functions - 在azure函数中如何通过属性绑定(bind)事件中心输出参数

ruby - 为 azure 服务总线/eventhubs 生成有效的授权 header

azure-functions - 带有 Azure 函数的事件中心指针

azure - 找不到类型或命名空间 EventProcessorClient

azure - 从构建服务器构建和部署 Azure Functions 应用程序

c# - 可执行文件可以作为 blob 触发的 Azure 函数的一部分运行吗?

具有按时间触发的专用终结点的 Azure 函数应用程序 - 手动触发不起作用

azure - 在本地开发中使用azure KeyVault

c# - 创建和请求 Azure 参数函数数组

c# - 向事件中心 UWP 发送消息