【问题标题】:Azure Function - What Happens to Processed Messages without Outputting Result?Azure 函数 - 处理后的消息没有输出结果会怎样?
【发布时间】:2017-03-14 14:52:13
【问题描述】:

我编写了一个 Azure 函数并将其连接到 IoT 中心的消息传递端点,以触发所有传入消息的函数。该函数的目的是在蜂窝传输之前解压缩先前使用 GZIP 压缩的消息。

目前,我们有未压缩传输到云的设备,我们正在寻求添加压缩以降低传输成本。我们目前还使用流分析来分析流中的消息,并将它们输出到各种集线器、blob、表等。因此,一旦消息被压缩,我们将不再能够使用流分析来指导基于消息值。

我已经开发了我的函数来解压缩消息并将结果输出到事件中心以进行进一步处理。

我的问题是:如果我不输出内容,修改后的消息是否会一直存在于队列中,直到被另一个应用程序摄取?或者如果我不输出结果,我的更改会消失吗?如果未压缩的消息能够存在于队列中,那么我仍然可以使用流分析,因为我目前已将其配置为正常运行。

【问题讨论】:

  • 我不完全知道它是如何与事件中心一起工作的,但对于 Azure 队列,它的工作原理是这样的:它会尝试处理消息,如果函数没有出错,则消息被删除,如果函数出错,它将重试最多 5 次并将消息移动到毒队列
  • IoT 中心消息不应从那里消失,类似于事件中心。他们应该留在自己的分区中,直到达到保留时间。

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


【解决方案1】:

您似乎在询问事件中心(您将未压缩消息推送到的那个)是否会保留消息,如果它们没有立即被使用。答案是肯定的。事件中心具有可在 Azure 门户中配置的保留策略。此外,您可以查看Event Hub archiving 功能,该功能允许自动将消息推送到 blob 存储。将未压缩的消息放入事件中心后,您仍然可以像以前一样使用流分析进行处理。

您可能还想查看Azure IoT Hub routing,它使用消息属性将它们发送到不同的自定义端点,而无需打开消息的正文。这将允许您在无需解压缩消息的情况下进行路由(如果您的方案允许使用消息属性)

【讨论】:

  • 因此,如果我在函数中收到消息,然后解压缩消息并完成执行,它应该保持未压缩状态,然后流将处理将内容输出到它们的各个位置?
猜你喜欢
  • 1970-01-01
  • 2019-09-30
  • 1970-01-01
  • 2015-08-21
  • 1970-01-01
  • 2013-05-27
  • 1970-01-01
  • 2011-02-24
  • 1970-01-01
相关资源
最近更新 更多