Kinesis Data Firehose - Amazon IoT Core
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Kinesis Data Firehose

Kinesis Data Firehose (firehose) 操作可将 MQTT 消息中的数据发送至 Amazon Kinesis Data Firehose 流。

要求

此规则操作具有以下要求:

  • Amazon IoT 可以承担以执行 firehose:PutRecord 操作的 IAM 角色。有关更多信息,请参阅向 Amazon IoT 规则授予所需的访问权限

    在 Amazon IoT 控制台中,您可以选择或创建一个角色以允许 Amazon IoT 执行此规则操作。

  • 如果您使用 Kinesis Data Firehose 将数据发送到 Amazon S3 存储桶,并且您使用 Amazon Key Management Service (Amazon KMS) 客户托管的 Amazon KMS key (KMS 密钥)对 Amazon S3 中的数据进行静态加密,Kinesis Data Firehose 必须具有对存储桶的访问权限,并且有权代表调用方使用 Amazon KMS key。有关更多信息,请参阅 Amazon Kinesis Data Firehose 开发人员指南中的向 Kinesis Data Firehose 授予对 Amazon S3 目标的访问权限

参数

使用此操作创建 Amazon IoT 规则时,您必须指定以下信息:

batchMode

(可选)通过使用 PutRecordBatch 批量交付 Kinesis Data Firehose 流。默认值为 false

batchModetrue 且规则的 SQL 语句求值为一个数组时,每个数组元素在 PutRecordBatch 请求中形成一条记录。生成的数组,其记录不得超过 500 条。

支持替换模板:否

deliveryStreamName

消息数据写入的 Kinesis Data Firehose 流。

支持替换模板:仅限 API 和 Amazon CLI

separator

将用于分隔写入 Kinesis Data Firehose 流的记录的分隔符。如果省略此参数,则流不使用分隔符。有效值:,(逗号),\t(选项卡),\n(换行符),\r\n(窗口换行符)。

支持替换模板:否

roleArn

授予对 Kinesis Data Firehose 流的访问权限的 IAM 角色。有关更多信息,请参阅要求

支持替换模板:否

示例

下面的 JSON 示例定义了 Amazon IoT 规则中的 Kinesis Data 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 示例定义了 Amazon IoT 规则中一个带有替代模板的 Kinesis Data 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" } } ] } }

另请参阅