设备可以发送两种格式的消息:JSON和MessagePack。我尝试从物联网规则中猜出来。我编写了下一个SQL:
SELECT
topic(5) as event_name,
isUndefined(device) as msgpack,
case isUndefined(device)
when true then encode(*, 'base64')
when false then * as encoded_data
FROM 'some_prefix/+/+/+/+'
我的想法基于以下逻辑:如果数据为JSON格式,则它应始终具有device
字段(它确实具有)。否则,它是MessagePack。
它与JSON数据配合使用并在false
字段中返回msgpack
,但不适用于MessagePack。似乎根本没有处理消息。我在“成功”操作或fallback
中都看不到它们。我也没有注意到CloudWatch中的任何错误。
我想知道: