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

配置并测试规则

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

  • 创建一个 Amazon SNS 主题。

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

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

  • 使用您的 AWS IoT 按钮或 MQTT 客户端测试规则。

在此页面的右上角,有一个 Filter View 下拉列表。有关使用 AWS IoT 按钮测试规则的说明,请选择 AWS IoT 按钮。有关使用 AWS IoT MQTT 客户端测试规则的说明,请选择 MQTT 客户端

创建一个 SNS 主题

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

注意

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

  1. 打开 Amazon SNS 控制台

  2. 在左侧窗格选择 Topics

  3. 选择 Create new topic

  4. 键入主题名称和显示名称,然后选择 Create topic

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

订阅 Amazon SNS 主题

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

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

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

    Endpoint 字段中,键入启用 SMS 的手机号码,然后选择 Create subscription

    注意

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

创建规则

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

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

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

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

  3. Create a rule 页面上,在 Name 字段中键入规则名称。在 Description 字段键入规则的说明。

  4. 向下滚动至消息源。从 Using SQL version 下拉列表中选择最新版本。在属性字段键入 *。这将指定您要发送触发了规则的完整 MQTT 消息。

  5. 规则引擎使用主题筛选条件来确定收到 MQTT 消息时将触发哪些规则。在主题筛选条件字段,键入 iotbutton/your-button-DSN。如果您当前未使用 AWS IoT 按钮,请键入 my/topic 或规则中使用的主题。

    注意

    您可以在按钮底部找到 DSN。

    Condition 留空。

  6. Set one or more actions 中,选择 Add action

  7. Select an action 页面上,选择 Send a message as an SNS push notification,然后选择 Configure action

  8. 配置操作页面上,从 SNS 目标下拉列表中选择您之前创建的 Amazon SNS 主题。

  9. 现在,授予 AWS IoT 在触发规则时代表您发布到 Amazon SNS 主题的权限。选择 Create a new role。在 IAM role name 字段输入新角色的名称。在输入名称后,再次选择 Create a new role。从 IAM role name 下拉列表中选择新创建的角色。

  10. 选择 Update role 将权限应用到新创建的角色,然后选择 Add action

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

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

测试 Amazon SNS 规则

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

AWS IoT 按钮

按您的按钮。您应该会收到短信,显示您的设备的当前电池电量水平 (以及其他信息)。尝试长按 (大约 2 秒) 和快速双按,然后注意生成的消息。

AWS IoT MQTT 客户端

要使用 AWS IoT MQTT 客户端测试规则,请执行以下操作:

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

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

    { "message": "Hello, from AWS IoT console" }

    注意

    如果您正在使用按钮,请在指定要发布的主题和消息字段中键入 iotbutton/your-button-DSNmy/topic,而不是 …。

  3. 选择 Publish to topic。您的手机上应该会收到 Amazon SNS 消息。

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

后续步骤

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