gpt4 book ai didi

azure - 减慢 Azure Function 中的 EventHubTrigger 速度

转载 作者:行者123 更新时间:2023-12-03 03:46:16 28 4
gpt4 key购买 nike

我有一个简单的 Azure 函数:

  • 作为输入使用 EventHubTrigger
  • 在内部将一些事件写入 Azure 存储

一天中的某些时候,平均批处理大小约为 250+,这很好,因为我向 Azure 存储写入的 block 较少,但大多数时间批处理大小小于 10。是否有办法强制 EventHubTrigger 等待,直到有超过 50/100/200 条消息需要处理,这样我就可以减少 Azure 存储中的追加 block 。

最佳答案

更新--

host.json文件包含控制事件中心触发器行为的设置。请参阅host.json settings有关可用设置的详细信息部分。

您可以指定一个时间戳,以便您接收仅在给定时间戳之后排队的事件。

initialOffsetOptions/enqueuedTimeUtc :指定事件在流中的排队时间,从该时间开始处理。当initialOffsetOptions/type配置为fromEnqueuedTime时,此设置是必需的。支持 DateTime.Parse() 支持的任何格式的时间,例如2020-10-26T20:31Z。为了清楚起见,您还应该指定时区。如果未指定时区,Functions 会假定运行函数应用的计算机的本地时区,在 Azure 上运行时为 UTC。欲了解更多信息,请参阅EventProcessorOptions documentation .

---

如果我正确理解您的要求,您希望将所有收到的事件保留到某个阈值,然后在单个 Azure 函数运行中立即处理它们。

要批量接收事件,请将 string 或 EventData 设为数组。在您在 function.json 文件和 EventHubTrigger 属性中设置的绑定(bind)配置属性中。将 function.json 属性“cardinality”设置为“ma​​ny”以启用批处理。如果省略或设置为 1,则会将一条消息传递给该函数。在 C# 中,每当触发器具有该类型的数组时,就会自动分配此属性。

注意:批量接收时,您无法将事件元数据绑定(bind)到方法参数,并且必须从每个 EventData 对象接收这些参数

此外,我找不到执行此任务的明确方法。你必须modify your function ,就像使用 timer trigger或使用blob queue storage API读取缓冲区中的所有消息,然后 write to a blob via blob binding .

关于azure - 减慢 Azure Function 中的 EventHubTrigger 速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69035804/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com