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

创建 Amazon DynamoDB 规则

借助 DynamoDB 规则,您可以从传入的 MQTT 消息中获取信息并将其写入 DynamoDB 表。

创建 DynamoDB 规则

  1. AWS IoT 控制台的导航窗格中,选择行动

  2. Rules 页面,选择 Create

  3. 创建规则页面上,输入规则的名称和描述。

    注意

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

  4. 规则查询语句下,从使用 SQL 版本列表中选择最新版本。对于规则查询语句,输入:

    SELECT * FROM 'my/greenhouse'

    "SELECT *" 指定您要发送触发了规则的完整 MQTT 消息。"FROM 'my/greenhouse'" 告知规则引擎在收到其主题与该主题筛选条件匹配的 MQTT 消息时,触发此规则。选择添加操作

  5. 选择操作页面,选择将消息插入到 DynamoDB 表,然后选择配置操作

  6. Configure action 页面,选择 Create a new resource

  7. Amazon DynamoDB 页面,选择 Create table

  8. 创建 DynamoDB 表页面,在表名称字段中输入名称。在分区键中,输入 Row。选择添加排序键,然后在排序键字段中输入 PositionInRowRow 表示温室中的一排植物。PositionInRow 表示某个植物在一排植物中的位置。为分区键和排序键选择字符串,然后选择创建。创建 DynamoDB 表会需要几秒钟时间。关闭打开 Amazon DynamoDB 控制台的浏览器标签页。如果您不关闭该标签页,则您的 DynamoDB 表不会显示在 AWS IoT 控制台的配置操作页面上的表名称列表中。

  9. 配置操作页面,从表名称列表中选择新表。在分区键值中,输入 ${row}。执行这一操作后,规则将从 MQTT 消息中获取 row 属性的值,并将其写入 DynamoDB 表中的列。在排序键值中,输入 ${pos}。此操作会将 pos 属性的值写入 PositionInRow 列。将将消息数据写入到此列留空。默认情况下,整条消息都将写入表中名为“Payload”的列。选择 Create a new role

  10. 创建新角色中,在名称中输入唯一的名称,然后选择创建角色

  11. 选择添加操作

  12. 选择创建规则来创建规则。

测试 Amazon DynamoDB 规则

  1. 要测试规则,请打开 AWS IoT 控制台,并从导航窗格中选择测试

  2. 选择发布到主题。在发布部分中,输入 my/greenhouse 作为主题。在消息区域中,输入以下 JSON:

    { "row" : "0", "pos" : "0", "moisture" : "75" }

    返回到 DynamoDB 控制台并选择

    选择 GreenhouseTable,然后选择项目选项卡。您的数据将显示在项目选项卡上。