首页 > 解决方案 > 是否可以强制 Azure IoT 中心将 blob 保存为内容类型 application/json

问题描述

我有一个将遥测消息发送到 Azure IoT 中心的 IoT 设备。该消息没有任何内容类型的属性。我将收到的 IoT 遥测消息保存在一个 blob 中,并发现集线器将它们保存为内容类型 = 应用程序/八位字节流,但我希望它们保存为内容类型 = 应用程序/json。由于我无法修改设备和消息结构,有没有办法设置 IoT 中心、路由规则或 blob 存储本身,以强制内容类型为 application/json?

我的集线器自定义存储端点的屏幕截图,将设置编码为 JSON。 截图在这里

标签: azureazure-blob-storageazure-iot-hub

解决方案


我做了重现,发现您的 IOT 集线器消息可能默认设置为 blob 作为 AVRO。请使用编码部分指定消息格式,例如 JSON

下图显示了我们如何导航到 IOT hub 消息路由并添加自定义端点进行存储,并选择一个容器来存储 IOT hub 的消息。

在此处输入图像描述

在此处输入图像描述

注意:数据可以以默认的 Apache Avro 格式或 JSON 格式写入 Blob 存储。

只能在配置 Blob 存储终结点时设置编码格式。对于已设置的端点,无法更改格式。使用 JSON 编码时,您必须在消息系统属性中将 contentType 设置为 JSON,并将 contentEncoding 设置为 UTF-8。

参考:教程 -使用 Azure CLI 为 Azure IoT 中心配置消息路由 | 微软文档

请通过上述文档中的存储帐户部分的路线。


推荐阅读