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 规则中定义 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" } } ] } }

另请参阅