Iot Central to Blob Storage Data 加密遥测数据主体

Iot Central to Blob Storage Data encrypted telemetry data body

我遇到了将遥测数据 data/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".

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

查看 this 文档。

设置设备消息系统属性,例如 contentTypeapplication/jsoncontentEncodingUTF-8.

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

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

更新:

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

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

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

如您所见,发布的主题是

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

并且 6 条消息已发送到 IoT Central。

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

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

如您所见,每个设备消息的正文不是 Base64 编码的 json 文本。

注意,只有设备消息的 contentTypecontentEncoding 将决定正文是 Base64 编码还是不是。