本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Firehose
Firehose (firehose) 操作可将 MQTT 消息中的数据发送至 Amazon Data Firehose 流。
要求
此规则操作具有以下要求:
-
Amazon IoT可以代入执行
firehose:PutRecord操作的 IAM 角色。有关更多信息,请参阅 授予Amazon IoT规则所需的访问权限。在Amazon IoT控制台中,您可以选择或创建Amazon IoT允许执行此规则操作的角色。
-
如果您使用 Firehose 将数据发送到亚马逊 S3 存储桶,并且您使用托管Amazon KMSAmazon KMS key客户加密亚马逊 S3 中的静态数据,则 Firehose 必须有权访问您的存储桶,并有权Amazon KMS key代表调用者使用这些存储桶。有关更多信息,请参阅《Amazon Data Firehose 开发人员指南》中的 Grant Firehose access to an Amazon S3 destination。
Parameters
使用此操作创建Amazon IoT规则时,必须指定以下信息:
batchMode-
(可选)通过使用
PutRecordBatch批量交付 Firehose 流。默认值为false。当
batchMode为true且规则的 SQL 语句求值为一个数组时,每个数组元素在PutRecordBatch请求中形成一条记录。生成的数组,其记录不得超过 500 条。支持替换模板:否
deliveryStreamName-
消息数据写入的 Firehose 流。
支持替换模板:Amazon CLI仅支持 API
separator-
(可选)将用于分隔写入 Firehose 流的记录的分隔符。如果省略此参数,则流不使用分隔符。有效值:
,(逗号),\t(选项卡),\n(换行符),\r\n(窗口换行符)。支持替换模板:否
roleArn-
授予对 Firehose 流的访问权限的 IAM 角色。有关更多信息,请参阅 要求。
支持替换模板:否
示例
以下 JSON 示例在规则中定义了 Fireh Amazon IoT ose 操作。
{ "topicRulePayload": { "sql": "SELECT * FROM 'some/topic'", "ruleDisabled": false, "awsIotSqlVersion": "2016-03-23", "actions": [ { "firehose": { "deliveryStreamName": "my_firehose_stream", "roleArn": "arn:aws:iam::123456789012:role/aws_iot_firehose" } } ] } }
以下 JSON 示例使用规则中的替换模板定义了 Firehose Amazon IoT 操作。
{ "topicRulePayload": { "sql": "SELECT * FROM 'some/topic'", "ruleDisabled": false, "awsIotSqlVersion": "2016-03-23", "actions": [ { "firehose": { "deliveryStreamName": "${topic()}", "roleArn": "arn:aws:iam::123456789012:role/aws_iot_firehose" } } ] } }
另请参阅
-
《Amazon Data Firehose 开发人员指南》中的 What is Amazon Data Firehose?