1

我有一个关于将遥测数据/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”。

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

4

1 回答 1

3

看看这个文件。

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

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

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

更新:

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

  1. 使用分配给 device1 的 PnP 设备模板 (environmentalSensor) 和数据导出到 blob 存储创建 IOT Central 应用程序:

在此处输入图像描述

  1. 使用 Azure IoT Hub Tester 模拟通过 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 编码。

于 2019-11-27T08:33:37.753 回答