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。如果
batchMode为true且规则 SQL 语句的求值为一个 Array 时,通过调用BatchPutMessage将 Array 元素发送到 AWS IoT Events 时,会将每个 Array 元素都视为单独的消息。生成的数组,其消息不得超过 10 条。batchMode为true时,不能指定messageId。支持替换模板:否
inputName-
AWS IoT Events 输入的名称。
支持替换模板:仅限 API 和 AWS CLI
messageId-
(可选)使用它可验证 AWS IoT Events 探测器只处理一个具有给定
messageId的输入(消息)。您可以使用${newuuid()}替代模板,以便为每个请求生成一个唯一的 ID。当
batchMode为true时,您无法指定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" } } ] } }
另请参阅
-
《AWS IoT Events 开发人员指南》中的什么是 AWS IoT Events?