AWS IoT Events - AWS IoT Core

AWS IoT Events

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

重要

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

要求

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

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

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

参数

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

batchMode

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

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

batchModetrue 时,不能指定 messageId

支持替换模板:否

inputName

AWS IoT Events 输入的名称。

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

messageId

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

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

支持替换模板:是

roleArn

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

支持替换模板:否

示例

下面的 JSON 示例介绍了如何在 AWS 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" } } ] } }

另请参阅