IoT Events - Amazon IoT Core
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

IoT Events

IoT Events (iotEvents) 操作可将触发规则的 MQTT 消息中的数据发送至 Amazon IoT Events 输入。

重要

如果将有效负载发送到 Amazon IoT Core 时未使用 Input attribute Key,或者密钥不在密钥中指定的 JSON 路径中,则会导致 IoT 规则失败并显示错误 Failed to send message to Iot Events

要求

此规则操作具有以下要求:

  • Amazon IoT 可以承担以执行 iotevents:BatchPutMessage 操作的 IAM 角色。有关更多信息,请参阅向 Amazon IoT 规则授予所需的访问权限

    在 Amazon IoT 控制台中,您可以选择或创建一个角色以允许 Amazon IoT 执行此规则操作。

参数

使用此操作创建 Amazon IoT 规则时,您必须指定以下信息:

batchMode

(可选)是否批处理事件操作。默认值为 false

如果 batchModetrue 且规则 SQL 语句的求值为一个 Array 时,通过调用 BatchPutMessage 将 Array 元素发送到 Amazon IoT Events 时,会将每个 Array 元素都视为单独的消息。生成的数组,其消息不得超过 10 条。

batchModetrue 时,不能指定 messageId

支持替换模板:否

inputName

Amazon IoT Events 输入的名称。

支持替换模板:仅限 API 和 Amazon CLI

messageId

(可选)使用它可确保 Amazon IoT Events 探测器只处理一个具有给定 messageId 的输入(消息)。您可以使用 ${newuuid()} 替代模板,以便为每个请求生成一个唯一的 ID。

batchModetrue 时,您无法指定 messageId -- 将分配一个新 UUID 值。

支持替换模板:是

roleArn

允许 Amazon IoT 将输入发送到 Amazon IoT Events 探测器的 IAM 角色。有关更多信息,请参阅要求

支持替换模板:否

示例

下面的 JSON 示例介绍了如何在 Amazon IoT 规则中定义 IoT Events 操作。

{ "topicRulePayload": { "sql": "SELECT * FROM 'some/topic", "ruleDisabled": false, "awsIotSqlVersion": "2016-03-23", "actions": [ { "iotEvents": { "inputName": "MyIoTEventsInput", "messageId": "${newuuid()}", "roleArn": "arn:aws:iam::123456789012:role/aws_iot_events" } } ] } }

另请参阅