微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Azure IOT 消息路由查询:阵列遥测:路由条件无效

如何解决Azure IOT 消息路由查询:阵列遥测:路由条件无效

说明:
我想将查询放在下面以过滤遥测数据,这些数据应该只转到内置的 Eventthub 端点。

我的查询
(NOT(IS_ARRAY($body)) OR ($body.length = 1 AND $body[0].type != 'Gateway') OR $body.length > 1)

查询意图:
设备遥测数据将是数组或单个对象。我的大部分数据将是数组中的一个数据对象,即“网关”类型数据。所以我不想将该消息路由到内置端点,因为它不是必需的,而且我无法控制设备固件不发送该遥测。
如果我的遥测数组数据对象有多个对象,那么我想路由到内置端点。 如果我的遥测数据不是数组,那么我也需要路由到内置端点。
错误日志:
路由条件无效、RouteName:SensorsPayload、ErrorMessage:Message:二元运算符“!=”的操作数无效:有“未定义”和“字符串”,预期为“未定义”和“未定义”。
测试数据:
数据-1:
{"timestamp":"2020-12-21T10:17:42.074Z","type":"UnkNown","mac":"ACXXXXXXXXX3","bleName":"","RSSi":-55,"rawData ":"0201060303E1FF1016E1FFA10826F558263F23AC504C5553"}
数据 2:
[{"timestamp":"2020-12-21T10:17:42.074Z","type":"Gateway","mac":"ACXXXXXXXXX5"," rawData":"0201060303E1FF1016E1FFA10826F558263F23AC504C5553"},{"timestamp":"2020-12-21T10:17:42.074Z","XXXNamemac:"3","XXX RSSi":-55,"rawData":"0201060303E1FF1016E1FFA10826F558263F23AC504C5553"}]
数据 3:
[{"timestamp":"2020-12-21T10:17:42.074Z"," rawData":"0201060303E1FF1016E1FFA10826F558263F23AC504C5553"}]

测试数据的预期结果:
Data-1:应该路由到终点
Data-2:应该路由到终点
数据 3:不应路由。它应该被简单地忽略。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。