AWS IOT规则失败,并显示消息“评估运算符'='时出错:未定义结果”

时间:2019-04-02 16:12:58

标签: aws-iot

我使用以下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定义了'='运算符。

2 个答案:

答案 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'