AWS IoT
开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

创建 AWS IoT 规则来发送电子邮件

AWS IoT 规则定义了查询以及从设备收到消息时要执行的一个或多个操作。AWS IoT 规则引擎侦听设备发送的消息,并使用消息中的数据确定是否应采取某些操作。有关更多信息,请参阅 AWS IoT 规则

在本教程中,您的 Raspberry Pi 在 aws/things/RaspberryPi/shadow/update 上发布消息。这是设备和 Thing Shadow 服务使用的内部 MQTT 主题。Raspberry Pi 发布具有以下形式的消息:

{ "reported": { "moisture" : <moisture-reading>, "temp" : <temperature-reading> } }

创建查询来从传入消息中提取含水量和温度数据。创建 Amazon SNS 操作来在含水量读数低于阈值时获取数据并将其发送给 Amazon SNS 主题订阅者。

创建 Amazon SNS 规则

  1. AWS IoT 控制台的导航窗格中,选择 Act (行动)。如果显示您还没有任何规则对话框,请选择创建规则。否则,选择 Create

  2. 创建规则页面上,为此规则输入名称(例如,MoistureSensorRule)。

  3. 对于描述,请为此规则提供一个简短的描述(例如,Sends an alert when soil moisture level readings are too low)。

  4. Rule query statement (规则查询语句) 下,选择 SQL 版本 2016-03-23,然后输入以下 AWS IoT SQL 查询语句:

    SELECT * FROM '$aws/things/RaspberryPi/shadow/update/accepted' WHERE state.reported.moisture < 400

    moisture 读数小于 400 时,该语句将触发规则操作。

    注意

    您可能需要使用其他值。在 Raspberry Pi 上运行代码之后,您可以通过触摸传感器、将其放入水中或放入花盆中来查看从传感器获得的值。

  5. Set one or more actions (设置一个或多个操作) 下,选择 Add action (添加操作)

  6. 选择操作页面上,选择将消息发送为 SNS 推送通知

  7. 滚动到页面底部,然后选择 Configure action (配置操作)

  8. 配置操作页面上,对于 SNS 目标,选择 Select (选择),然后选择 LowMoistureTopic

  9. 对于 Message format,请选择 RAW

  10. 选择或创建角色以向 AWS IoT 授予执行此操作的权限下,选择 Create role (创建角色)。输入角色的名称(例如,LowMoistureTopicRole,然后选择 Create role (创建角色)

  11. 选择 Add Action

  12. 选择 Create rule