本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Firehose
Firehose (firehose
) 操作将数据从 MQTT 消息发送到亚马逊数据 Firehose 流。
要求
此规则操作具有以下要求:
-
AWS IoT 可以代入执行
firehose:PutRecord
操作的 IAM 角色。有关更多信息,请参阅 授予 AWS IoT 规则所需的访问权限。在 AWS IoT 控制台中,您可以选择或创建 AWS IoT 允许执行此规则操作的角色。
-
如果您使用 Firehose 将数据发送到亚马逊 S3 存储桶,并且您使用托管 AWS KMS AWS KMS key 客户加密亚马逊 S3 中的静态数据,则 Firehose 必须有权访问您的存储桶,并有权 AWS KMS key 代表调用者使用这些存储桶。有关更多信息,请参阅《亚马逊数据 Firehose 开发者指南》中的授予 Fi rehose 访问亚马逊 S3 目标的权限。
参数
使用此操作创建 AWS IoT 规则时,必须指定以下信息:
batchMode
-
(可选)是否使用批量传送 Firehose 直播。
PutRecordBatch
默认值为false
。当
batchMode
为true
且规则的 SQL 语句求值为一个数组时,每个数组元素在PutRecordBatch
请求中形成一条记录。生成的数组,其记录不得超过 500 条。支持替换模板:否
deliveryStreamName
-
要向其写入消息数据的 Firehose 流。
支持替换模板:API 且 AWS CLI 仅支持
separator
-
(可选)一种字符分隔符,用于分隔写入 Firehose 流的记录。如果省略此参数,则流不使用分隔符。有效值:
,
(逗号),\t
(选项卡),\n
(换行符),\r\n
(窗口换行符)。支持替换模板:否
roleArn
-
允许访问 Firehose 直播的 IAM 角色。有关更多信息,请参阅 要求。
支持替换模板:否
示例
以下 JSON 示例在规则中定义了 Fireh AWS 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 AWS 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" } } ] } }
另请参阅
-
什么是亚马逊 Data Firehose? 在 Amazon Data Firehos e 开发者指南中