

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 创建将设备数据路由到其他服务的 Amazon IoT 规则
<a name="iot-rules-tutorial"></a>

这些教程向您展示了如何使用一些更常见的 Amazon IoT 规则操作来创建和测试规则。

Amazon IoT 规则将数据从您的设备发送到其他 Amazon 服务。它们侦听特定的 MQTT 消息，格式化消息有效载荷中的数据，并将结果发送到其它 Amazon 服务。

我们建议您按照这里显示的顺序尝试这些功能，即使您的目标是使用 Lambda 或更复杂的函数创建一个规则。这些教程是按照从基本到复杂的顺序提供的。它们以递增方式呈现新概念，从而帮助您了解可用于创建没有特定教程的规则操作的概念。

**注意**  
Amazon IoT 规则可帮助您将物联网设备中的数据发送到其他 Amazon 服务。但是，要成功完成此操作，您需要了解要向其发送数据的其它服务的工作知识。虽然这些教程提供了完成任务所需的信息，但您可能会发现在解决方案中使用数据之前，了解有关要向其发送数据的服务的详细信息会很有帮助。对其他 Amazon 服务的详细说明不在这些教程的范围之内。

**教程场景概览**  
这些教程的场景是定期发布数据的天气传感器设备。在这个虚构系统中有许多这样的传感器设备。但是，本部分中的教程侧重于单个设备，同时展示了如何容纳多个传感器。

本节中的教程向您展示如何使用 Amazon IoT 规则对这个虚构的天气传感器设备系统执行以下任务。
+ 

**[教程：重新发布 MQTT 消息](iot-repub-rule.md)**  
本教程介绍如何将从天气传感器收到的 MQTT 消息重新发布为仅包含传感器 ID 和温度值的消息。它只使用 Amazon IoT Core 服务，并演示简单 SQL 查询以及如何使用 MQTT 客户端来测试您的规则。
+ 

**[教程：发送 Amazon SNS 通知](iot-sns-rule.md)**  
本教程介绍如何在天气传感器设备的值超过特定值时发送 SNS 消息。它以上一教程中介绍的概念为基础，并添加了如何使用另一项 Amazon 服务，即[亚马逊简单通知服务](https://docs.amazonaws.cn//sns/latest/dg/welcome.html) (Amazon SNS)。

  如果您是 Amazon SNS 的新用户，请查看其[入门](https://docs.amazonaws.cn//sns/latest/dg/sns-getting-started.html)练习，然后再开始本教程。
+ 

**[教程：将设备数据存储在 DynamoDB 表中](iot-ddb-rule.md)**  
本教程介绍如何将来自气象传感器设备的数据存储在数据库表中。它使用规则查询语句和替代模板来设置目标服务的消息数据的格式，[Amazon DynamoDB](https://docs.amazonaws.cn//amazondynamodb/latest/developerguide/Introduction.html)。

  如果您是的 DynamoDB 用户，请查看其[入门](https://docs.amazonaws.cn//amazondynamodb/latest/developerguide/GettingStartedDynamoDB.html)练习，然后再开始本教程。
+ 

**[教程：使用 Amazon Lambda 函数格式化通知](iot-lambda-rule.md)**  
本教程介绍如何调用 Lambda 函数来重新格式化设备数据，然后将其作为文本消息发送。它在函数中添加了 Python 脚本和 Amazon SDK [Amazon Lambda](https://docs.amazonaws.cn//lambda/latest/dg/welcome.html)函数，以便使用来自天气传感器设备的消息有效载荷数据进行格式化并发送短信。

  如果您是 Lambda 的新用户，请查看 Lambda 的[入门](https://docs.amazonaws.cn//lambda/latest/dg/getting-started.html)练习，然后再开始本教程。

**Amazon IoT 规则概述**  
所有这些教程都创建了 Amazon IoT 规则。

对于将数据从设备发送到其他 Amazon 服务的 Amazon IoT 规则，它使用：


+ 规则查询语句，由以下内容组成：
  + 一个 SQL SELECT 子句，用于从消息有效载荷中选择数据并设置其格式
  + 标识要使用的消息的主题筛选条件（规则查询语句中的 FROM 对象）
  + 可选条件语句（SQL WHERE 子句），用于指定执行操作的特定条件
+ 至少一个规则操作

设备会向主题发布 MQTT 消息。SQL SELECT 语句中的主题筛选条件标识要应用规则的 MQTT 主题。SQL SELECT 语句中指定的字段将来自传入 MQTT 消息有效载荷的数据格式化，以供规则的操作使用。有关规则操作的完整列表，请参阅 [Amazon IoT 规则操作](iot-rule-actions.md)。

**Topics**
+ [教程：重新发布 MQTT 消息](iot-repub-rule.md)
+ [教程：发送 Amazon SNS 通知](iot-sns-rule.md)
+ [教程：将设备数据存储在 DynamoDB 表中](iot-ddb-rule.md)
+ [教程：使用 Amazon Lambda 函数格式化通知](iot-lambda-rule.md)