在一个C#Azure功能会话中处理来自IoT中心的多条消息

时间:2019-04-23 07:51:10

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

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

1 个答案:

答案 0 :(得分:2)

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

如果您不喜欢文件上传解决方案,则必须考虑Azure功能是无状态的,并且如果您需要合并两个消息以在云端获取一条信息,则需要将状态保存在某处并检查从那里。

此外,在确定AF是否适合这种特殊情况下的流处理之前,这里还需要考虑可靠性。例如:是否可能是第一条消息到来,并且在第二条消息到达IoT中心之前连接中断。并且您可以确定消息始终会按顺序排列吗?