重新发布消息MQTT AWS



我有一条消息通过MQTT来自一个主题。

我需要更改邮件列的名称。

原始消息:

{
"timestamp": 1645722065088,
"Heart Rate Measurement": 24550,
"Energy Expended": 1900,
"RR-Interval": 1
}

我只需要将时间戳和心率纳入规则:

SELECT "Heart Rate Measurement"as heartrate, timestamp as date FROM 
'pulsewave/heart_rate'

时间戳很容易获得;"心率测量";不是

我最终得到了以下内容:

{
"heartrate": "Heart Rate Measurement",
"date": 1645722065088
}

有什么技巧可以在心率测量中获得信息吗?当我在没有引号的情况下设置时,它不接受

该规则适用于timestamp属性,但不适用于Heart Rate Measurement,因为AWS IoT SQL语法不支持属性名称中的空格。

发件人https://docs.aws.amazon.com/iot/latest/developerguide/iot-sql-reference.html

带有空格的属性名称不能用作SQL语句中的字段名称。虽然传入的有效负载可以具有带有空格的属性名称,但此类名称不能在SQL语句中使用。但是,如果使用通配符(*(字段名称规范,它们将被传递到传出负载。

另一种方法是实现一个lambda,该lambda将您的JSON负载投影到不带空格的等价对象。

最新更新