【问题标题】:Delete Azure IoT Hub messages being used by Azure Functions删除 Azure Functions 正在使用的 Azure IoT 中心消息
【发布时间】:2020-03-10 21:50:17
【问题描述】:

我有一个以 IoT 中心作为触发器的 Azure 函数。几天前我禁用了 Azure 功能。现在我启用它,它会运行它错过的物联网消息(大约 1000 多个)。我想忽略所有这些消息,并在收到新消息的情况下运行它。

如何删除所有以前的 IoT 消息?

【问题讨论】:

  • 您可以使用 API 删除所有消息队列。
  • @MdFaridUddinKiron 没有这样的 API。消息位于事件中心终结点中,并将自动过期。在此之前,您无法删除它们

标签: azure azure-functions azure-iot-hub


【解决方案1】:

首先:消息在 Event Hub 端点中,并且将在设置的到期时间后自动到期(正如 Peter Bons 正确指出的那样:它保证至少保留消息直到到期时间。实际删除将发生一段时间后)。在此之前,您无法删除它们。

函数从与 EventHub 兼容的端点读取消息。它在底层使用检查点来标记最后一条读取的消息(即它的偏移量)。您可以在函数设置中关联的存储帐户中看到这一点。

要开始仅阅读最新消息,您需要修改此检查点。您可以通过编辑存储帐户上的文件手动执行此操作。但我不确定这会奏效。最后,在使用 IoT 中心/EventHub 绑定函数时,所有这些都为您抽象出来。因此,这并不是真正支持的。如果您不能只跳过代码中的消息,您可能需要自己实现 Event Hub processor Host - 这将为您提供所需的所有控制。

【讨论】:

  • 消息位于事件中心终结点中,将在设置的到期时间后自动到期。 -> 不是。这些消息保证会一直保留到过期日期过去。底层系统可能会在一段时间后将其删除,但通常不会立即将其删除。我看到邮件在保留日期后保留了数周。
  • 确实如此。但无论如何你不能手动删除它们。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-09
  • 1970-01-01
  • 2017-12-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多