Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Azure IoTHub设备消息结构和路由查询_Python_Azure_Azure Storage Blobs_Azure Iot Hub - Fatal编程技术网

Python Azure IoTHub设备消息结构和路由查询

Python Azure IoTHub设备消息结构和路由查询,python,azure,azure-storage-blobs,azure-iot-hub,Python,Azure,Azure Storage Blobs,Azure Iot Hub,我使用来自的python示例将遥测数据发送到IoTHub。现在,我尝试仅通过自定义端点和路由将来自设备“测试设备”的消息转发到blob存储中。使用查询字符串“true”,来自所有设备的所有消息都被推送到存储器。但是,我不能让查询只选择来自deviceId“test device”的消息。我在文档中搜索,但没有找到任何有用的示例 有人能帮我解答这个问题吗?至少,对IoTHub内的传入消息进行采样也会很有帮助,以了解IoTHub消息的结构(就像StreamAnalytics“采样数据”中所做的那样)

我使用来自的python示例将遥测数据发送到IoTHub。现在,我尝试仅通过自定义端点和路由将来自设备“测试设备”的消息转发到blob存储中。使用查询字符串“true”,来自所有设备的所有消息都被推送到存储器。但是,我不能让查询只选择来自deviceId“test device”的消息。我在文档中搜索,但没有找到任何有用的示例


有人能帮我解答这个问题吗?至少,对IoTHub内的传入消息进行采样也会很有帮助,以了解IoTHub消息的结构(就像StreamAnalytics“采样数据”中所做的那样)。

有一篇关于消息路由的非常好的博客文章

例如,您可以在添加到消息中的任何属性或消息体中的任何字段(如果是UTF-8编码的JSON)上进行路由。不确定默认情况下是否可以在deviceId上路由,但例如,您可以向消息中添加属性
“testmessage”:true
,然后使用路由规则来匹配该属性:
“testmessage”=true

您可以尝试在路由查询中使用
$connectionDeviceId=“{your device id}”
<代码>连接设备ID由IoT集线器标记在服务绑定消息上。我认为这比沉默的建议简单。消息系统属性的前缀为“$”符号。更多用于消息路由的查询语言。

您好,我有一个类似的问题。你成功了吗?我也试过,但对我无效。如果我将所有内容转储到blob中(使用'true'进行路由),我会看到属性
connectionDeviceID
,但不知何故路由忽略了它…@Juppo,我已经测试了这个查询字符串,它工作得很好。您是否为设备添加了引号或检查了设备是否正确?请注意,查询字符串区分大小写。我再次检查了拼写,并用单引号和双引号对其进行了测试。我还更新了所有的库,不知怎的,它神奇地工作了。谢谢!从connectionDeviceId,该值由IoT Hub设置,并标识消息的来源。这可能是设备遥测消息、设备双更改通知或设备生命周期事件。这是无法查询的。