我使用以下SQL创建了一个AWS IOT规则:
SELECT * FROM 'colors' WHERE color = 'green'
然后,我使用IoT控制台中的“测试工具”将以下消息发布到“颜色”主题:
{
"default": "{\"color\":\"green\",\"temperature\":100}"
}
该规则不会触发已配置的操作,该操作会将消息发送到SNS主题。
在cloudwatch日志上,我看到以下错误消息:
[ERROR] EVENT:WhereEval TOPICNAME:colors CLIENTID:iotconsole-1554220753724-0 MESSAGE:Error while evaluating where clause: Undefined result
我想念什么? AWS IoT SQL documentation定义了'='运算符。
答案 0 :(得分:0)
好的,我发现了我的错误。 SQL语法没错,消息出了问题。我必须将消息更改为:
{
"default": "{\"color\":\"green\",\"temperature\":200}",
"color": "green"
}
现在,SQL能够找到'color'属性。
有关SNS主题的发布操作已完成,我收到了在“消息”字段中编写的未转义JSON:
{"color":"green","temperature":200}
答案 1 :(得分:0)
我认为您的SQL语法 错误,IoT规则应显示为: 从'colors'选择SELECT default.color,default.temperature WHERE color ='green'