如何使用AWS IoT查询语言

时间:2017-10-25 21:36:15

标签: amazon-web-services iot

我正在尝试让AWS IoT规则触发我的操作。但文档很差。出于某种原因,文档认为我将拥有嵌套级别= 1的json有效负载。 我的JSON有效负载示例:

"state": { "reported": { "movement": "yes" } } }

我在规则中使用查询 SELECT * FROM '$aws/things/thing-name/shadow/update/accepted' WHERE state.reported.movement="yes"

文档,我正在使用:http://docs.aws.amazon.com/iot/latest/developerguide/iot-sql-where.html

有关于扁平JSON对象的信息,我确实尝试使用state.reported.movement,reported.movement,只是运动,看起来没有一个工作

1 个答案:

答案 0 :(得分:0)

好的,回答我的问题是:AWS IoT支持WHERE语句中的嵌套属性。出于某种原因,当我创建规则时,它没有工作。也许SNS主题在传递消息方面有一些延迟。

我的状态,来到AWS IoT接受的主题看起来像那样:

{
  "state": {
    "reported": {
      "system": "armed",
      "movement": "yes"
    }
  },
  "metadata": {
    "reported": {
      "system": {
        "timestamp": 1509207282
      },
      "movement": {
        "timestamp": 1509207282
      }
    }
  },
  "version": 618,
  "timestamp": 1509207282,
  "clientToken": "xxxxxxxx"
}

使用以下查询查询JSON我是

SELECT * FROM '$aws/things/myThing/shadow/update/accepted' WHERE state.reported.movement="yes" and state.reported.system="armed"