Iot Central到Blob存储数据加密的遥测数据主体

时间:2019-11-27 08:15:37

标签: azure azure-storage-blobs azure-iot-hub azure-iot-central

我在将遥测数据/ json保存到Blob存储中时遇到问题。 问题在于保存的数据已经对我宝贵的遥测数据进行了加密。

{"EnqueuedTimeUtc":"2019-11-25T15:42:51.5340000Z","Properties":{},"SystemProperties":{"to":"/devices/device-08/messages/events","connectionDeviceId":"device-08","connectionAuthMethod":"{\"scope\":\"device\",\"type\":\"sas\",\"issuer\":\"iothub\",\"acceptingIpFilterRule\":null}","connectionDeviceGenerationId":"xxxxxxxxxxxxx","contentEncoding":"","enqueuedTime":"2019-11-25T15:42:51.5340000Z"},"Body":"eyJ0ZW1wIjo3LjM5LCJodW0iOjczLjUsInJzc2kiOi04OSwic25yIjo4Ljh9"}

我认为问题还在于“ contentEncoding”:“”,因为它应该是“ contentEncoding”:“ utf-8”。

有人知道如何解决这个问题:)非常感谢您的努力!

1 个答案:

答案 0 :(得分:3)

看看this文档。

将设备消息系统属性,例如 contentType 设置为 application / json ,将 contentEncoding 设置为 UTF-8 >。

在您的设备直接使用MQTT协议的情况下,请使用主题来传递系统属性,例如:

 devices/mydeviceId/messages/events/$.ct=application%2Fjson&$.ce=utf-8

更新

以下屏幕片段显示了将数据导出到Blob存储的快速测试示例。

  1. 使用分配给device1的PnP设备模板(environmentalSensor)创建IOT中央应用程序,并将数据导出到Blob存储:

enter image description here

  1. 使用Azure IoT中心测试器模拟直接通过MQTT协议连接到IoT Central的PnP设备1:

enter image description here

如您所见,已发布的主题是

devices/device1/messages/events/$.ct=application%2Fjson&$.ce=utf-8

和6条消息已发送到IoT中心。

  1. 在IoT Central仪表板上显示遥测数据。

enter image description here

  1. 使用Azure存储资源管理器浏览blob内容:

enter image description here

如您所见,每条设备消息的主体都不是Base64编码的json文本。

请注意,只有设备消息的 contentType contentEncoding 会决定正文是否为Base64编码。