在一个 c# azure 函数会话中处理来自 IoT 中心的多条消息

Handle multiple messages from IoT hub in one c# azure function session

我需要处理来自 IoT 设备的消息,到目前为止我的工作流程还不错(IoT 设备向 IoT Hub 发送消息,IoT Hub 触发 Azure Function 处理消息并将信息保存到 Azure SQL).但是现在我有一个设备可以连续发送两条单独的消息中的全部信息(因为信息的长度)。 有没有关于如何同时处理这两个单独消息的解决方案? (每个消息类型都有一个唯一的 ID,所以我会知道哪个消息是信息的第一部分,哪个是第二部分)

是否可以选择将其作为文件上传到分配给 IoT 中心的 blob 存储,并使用 DeviceClient 方法 UploadBlobAsync?这样,当新文件出现在 blob 存储容器中时,您可以使用 azure 函数 attached。这可能是一种方式。

如果你不喜欢文件上传的方案,你要考虑到Azure函数是无状态的,如果你需要在云端合并两条消息得到一条信息,你就需要把状态保存在某个地方并从那里检查。

此外,在决定 AF 是否是这种特定情况下的流处理服务之前,这里的可靠性也是需要考虑的问题。例如:是否可能是第一条消息来了,并且在第二条消息到达 IoT 中心之前连接中断了。你能确定消息总是按顺序发送吗?