Azure IoT Hub路由至Service Bus的遥测消息缺失关键属性咨询
Azure IoT Hub路由至Service Bus的遥测消息缺失关键属性咨询
我最近在做设备遥测消息的流转场景:设备把遥测消息发送到Azure IoT Hub的以下MQTT主题:
devices/<MY_DEVICE>/messages/events/%24.uid=<MY_UID>&%24.ct=application%2Fjson&%24.ce=utf-8&%24.ctime=<SOME_TIME>
这里的<MY_DEVICE>、<MY_UID>、<SOME_TIME>都是实际业务里的有效值。之后我通过IoT Hub的路由功能把这些消息转发到Service Bus Topic,再用Azure Python SDK接收消息,拿到的是azure.servicebus.ServiceBusReceivedMessage类型的实例。
这些消息实例里已经包含了不少我需要的信息:比如content_type被正确设置为"application/json",application_properties里也有iothub-connection-device-id和iothub-creation-time-utc这些属性。但我发现有几个关键属性找不到获取途径:
- user-id(对应MQTT主题里的
$uid参数) - content-encoding(对应MQTT主题里的
$ce参数) - 类似
iothub-message-source、能标识这是遥测消息的属性
这看起来有点不符合预期,毕竟这些信息在原始的MQTT主题中是明确存在的,没想到转发到Service Bus之后居然没法直接访问到。想请教下有没有什么方法可以获取到这些缺失的属性?
备注:内容来源于stack exchange,提问作者Peter
相关产品推荐
相关产品推荐

