Firehose
Firehose(firehose
)操作可将 MQTT 消息中的数据发送至 Amazon Data Firehose 流。
要求
此规则操作具有以下要求:
-
AWS IoT 可以承担以执行
firehose:PutRecord
操作的 IAM 角色。有关更多信息,请参阅 向 AWS IoT 规则授予所需的访问权限。在 AWS IoT 控制台中,您可以选择或创建一个角色以允许 AWS IoT 执行此规则操作。
-
如果您使用 Firehose 将数据发送到 Amazon S3 存储桶,并且您使用 AWS KMS 客户自主管理型 AWS KMS key 加密 Amazon S3 中的静态数据,Firehose 必须具有对存储桶的访问权限,并且有权代表调用方使用 AWS KMS key。有关更多信息,请参阅《Amazon Data Firehose Developer Guide》中的 Grant Firehose access to an Amazon S3 destination。
参数
使用此操作创建 AWS IoT 规则时,您必须指定以下信息:
batchMode
-
(可选)通过使用
PutRecordBatch
批量交付 Firehose 流。默认值为false
。当
batchMode
为true
且规则的 SQL 语句求值为一个数组时,每个数组元素在PutRecordBatch
请求中形成一条记录。生成的数组,其记录不得超过 500 条。支持替换模板:否
deliveryStreamName
-
消息数据写入的 Firehose 流。
支持替换模板:仅限 API 和 AWS CLI
separator
-
(可选)将用于分隔写入 Firehose 流的记录的分隔符。如果省略此参数,则流不使用分隔符。有效值:
,
(逗号),\t
(选项卡),\n
(换行符),\r\n
(窗口换行符)。支持替换模板:否
roleArn
-
授予对 Firehose 流的访问权限的 IAM 角色。有关更多信息,请参阅 要求。
支持替换模板:否
示例
下面的 JSON 示例定义了 AWS IoT 规则中的 Firehose 操作。
{ "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 示例定义了 AWS IoT 规则中一个带有替代模板的 Firehose 操作。
{ "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 Developer Guide》中的 What is Amazon Data Firehose?