0

有什么方法可以在设备 MQTT 事件和设备孪生数据之间自动同步数据?

对于 Azure IOT 中心中的给定设备,有一个 mqtt 事件端点和一个与其关联的设备孪生端点。

我尝试通过设备的事件 MQTT 端点将 MQTT 事件数据发送到特定设备:devices//messages/events/,它成功了。我能够在设备资源管理器中看到传入的数据。

我遇到的问题是,当我们通过设备的事件 mqtt 端点向设备发送一些数据时,这些数据不会自动同步到相应设备的双胞胎中。我认为它应该自动发生。在 azure 中,我们必须手动(以编程方式)为我们通过设备的事件端点接收的每个事件数据执行双数据推送。

这可以通过将 mqtt 数据推送到设备孪生端点来完成:$iothub/twin/PATCH/properties/reported/?$rid=ID

无论如何,我们可以自动完成吗?- 意味着自动将数据从事件 mqtt 流同步到设备孪生?

4

1 回答 1

1

Azure IoT Hub 的主要重点是将设备遥测数据实时摄取到 Azure IoT Stream Pipeline。

除此之外,每个设备都可以将其状态保存在称为设备孪生的 Azure 存储中,例如 json 格式的文档。设备孪生在现代事件驱动的分布式架构中内置了对设备和后端云之间状态同步的支持。

参考资料 - IoT Hub quotas and throttling中描述了上述两种通信(例如设备到云和设备孪生)之间的差异。

根据该文档,您可以看到,设备孪生用于设备状态的非频繁持久化,例如:设备固件版本、某些设备配置、警报阈值等。

换句话说,设备孪生不是为在云后端存储实时设备遥测数据而设计的。在物联网中,来自设备的所有遥测数据(事物)都进入流管道进行实时分析等。

但是,Azure IoT Hub 有能力帮助您处理您的方案,当设备遥测数据及其设备孪生更改可以实时存储在 Azure Blob 存储中时,请在此处查看此功能。您可以使用 Azure 函数和/或流作业来分析、查询等此 blob 的业务逻辑。

于 2017-10-16T19:28:54.123 回答