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

配置并测试规则

AWS IoT 规则引擎侦听与规则匹配的传入 MQTT 消息。当收到匹配的消息时,规则会对 MQTT 消息中的数据执行某种操作(例如,将数据写入 Amazon S3 存储桶中,调用 Lambda 函数或向 Amazon SNS 主题发送消息)。在此步骤中,您创建和配置规则,以将从设备接收的数据发送到 Amazon SNS 主题。具体来说,您可以:

  • 创建 Amazon SNS 主题。

  • 使用手机号码订阅 Amazon SNS 主题。

  • 创建规则,以便将从您的设备接收的消息发送到 Amazon SNS 主题。

  • 使用 MQTT 客户端测试规则。

创建一个 SNS 主题

使用 Amazon SNS 控制台创建 Amazon SNS 主题。

注意

Amazon SNS 并未在所有 AWS 区域中提供。

  1. 打开 Amazon SNS 控制台

  2. 在左侧窗格选择 Topics

  3. 选择 Create topic

  4. 输入主题名称和显示名称,然后选择创建主题

    注意

    我们建议不要在 Amazon SNS 主题名称中使用个人身份信息。

  5. 请记下您刚刚创建的主题的 ARN。

订阅 Amazon SNS 主题

要在您的手机上接收 SMS 消息,请订阅 Amazon SNS 主题。

  1. 在 Amazon SNS 控制台中,选中您刚创建的主题旁边的复选框。从 Actions 菜单中,选择 Subscribe to topic

  2. Create subscription 上,从 Protocol 下拉列表中选择 SMS

    终端节点字段中,输入启用 SMS 的手机号码,然后选择创建订阅

    注意

    仅使用数字和短划线输入电话号码。

Amazon SNS 控制台显示以下消息,但您可能不会收到确认消息。

创建规则

AWS IoT 规则包含主题筛选条件和规则操作,在大多数情况下还包括 IAM 角色。如果在与主题筛选条件相匹配的主题下发布消息,则会触发规则。规则操作定义了规则触发时应执行的操作。IAM 角色包含一项或多项 IAM 策略,这些策略确定规则可以访问哪些 AWS 产品。您可以创建多项规则来侦听一个主题。同样,您也可以创建一个可由多个主题触发的规则。AWS IoT 规则引擎会持续处理在与规则中定义的主题筛选条件相匹配的主题下发布的消息。

在此示例中,您创建一条规则,以便使用 Amazon SNS 向手机号码发送 SMS 通知。

  1. 在 AWS IoT 控制台的左侧导航窗格中选择 Act (操作)

  2. Act 页面上,选择 Create a rule

  3. 创建规则页面上的名称字段中,输入规则的名称。

    注意

    我们建议您不要在规则名称中使用个人身份信息。

    描述字段中,输入规则的说明。

  4. 向下滚动至规则查询语句。从 Using SQL version 下拉列表中选择最新版本。在规则查询语句字段中,输入 SELECT * FROM 'my/topic'

    SELECT * 指定您要发送触发了规则的完整 MQTT 消息。FROM 'my/topic' 是主题筛选条件。规则引擎使用主题筛选条件来确定收到 MQTT 消息时将触发哪些规则。

  5. 设置一个或多个操作中,选择添加操作

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

  7. 配置操作页面上的 SNS 目标下,选择选择以展开 SNS 主题。然后,选择您之前创建的 Amazon SNS 主题旁边的选择。在消息格式下,请选择 JSON

  8. 现在,授予 AWS IoT 在触发规则时代表您发布到 Amazon SNS 主题的权限。选择 Create a new role。在 IAM 角色名称中,输入新角色的名称,然后选择创建新角色

  9. IAM 角色名称下,选择更新角色以将权限应用于新创建的角色。选择角色,然后选择添加操作

  10. Create a Rule 页面,选择 Create rule

有关创建规则的更多信息,请参阅 AWS IoT 规则

测试 Amazon SNS 规则

您可以使用 AWS IoT MQTT 客户端来测试您的规则。

  1. AWS IoT 控制台的左侧导航窗格中选择 Test (测试)

  2. 在 MQTT 客户端页面的发布部分中,在指定要发布的主题和消息字段中输入 my/topic 或规则中使用的主题。在消息负载部分中,输入以下 JSON:

    { "default": "Hello, from AWS IoT console", "message": "Hello, from AWS IoT console" }
  3. 选择 Publish to topic。您的手机上应该会收到 Amazon SNS 消息。

恭喜您! 您已成功创建并配置了一个规则,它会将从设备收到的数据发送到 Amazon SNS 主题。

后续步骤

有关 AWS IoT 规则的更多信息,请参阅 AWS IoT 规则教程AWS IoT 规则