

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

# Kinesis Data Streams
<a name="kinesis-rule-action"></a>

Kinesis Data Streams (`kinesis`) 操作将 MQTT 消息中的数据写入 Amazon Kinesis Data Streams。

## 要求
<a name="kinesis-rule-action-requirements"></a>

此规则操作具有以下要求：
+  Amazon IoT 可以代入执行`kinesis:PutRecord`操作的 IAM 角色。有关更多信息，请参阅 [授予 Amazon IoT 规则所需的访问权限](iot-create-role.md)。

  在 Amazon IoT 控制台中，您可以选择或创建 Amazon IoT 允许执行此规则操作的角色。
+ 如果您使用 Amazon KMS 客户管理的 Amazon KMS key （KMS 密钥）对 Kinesis Data Streams 中的静态数据进行加密，则该服务必须有权代表调用方使用 Amazon KMS key 。有关更多信息，请参阅*《Amazon Kinesis Data Streams 开发人员指南》*中的[使用用户生成的 Amazon KMS keys的权限](https://docs.amazonaws.cn/streams/latest/dev/permissions-user-key-KMS.html)。

## 参数
<a name="kinesis-rule-action-parameters"></a>

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

`stream`  
数据写入的 Kinesis 数据流。  
仅支持[替换模板](iot-substitution-templates.md)：API 且 Amazon CLI 仅支持

`partitionKey`  
用于确定将数据写入哪个分区的分区键。分区键通常由表达式（例如，`${topic()}` 或 `${timestamp()}`）组成。  
支持[替换模板](iot-substitution-templates.md)：是

`roleArn`  
授予访问 Kinesis 数据流 Amazon IoT 权限的 IAM 角色的 ARN。有关更多信息，请参阅 [要求](#kinesis-rule-action-requirements)。  
支持[替换模板](iot-substitution-templates.md)：否

## 示例
<a name="kinesis-rule-action-examples"></a>

以下 JSON 示例在规则中定义了 Kinesis Data Streams 操作 Amazon IoT 。

```
{
    "topicRulePayload": {
        "sql": "SELECT * FROM 'some/topic'", 
        "ruleDisabled": false, 
        "awsIotSqlVersion": "2016-03-23",
        "actions": [
            {
                "kinesis": {
                    "streamName": "my_kinesis_stream", 
                    "partitionKey": "${topic()}",
                    "roleArn": "arn:aws:iam::123456789012:role/aws_iot_kinesis"
                }
            }
        ] 
    }
}
```

以下 JSON 示例使用规则中的替换模板定义了 Kinesis 操作。 Amazon IoT 

```
{
    "topicRulePayload": {
        "sql": "SELECT * FROM 'some/topic'",
        "ruleDisabled": false,
        "awsIotSqlVersion": "2016-03-23",
        "actions": [
            {
                "kinesis": {
                    "streamName": "${topic()}",
                    "partitionKey": "${timestamp()}",
                    "roleArn": "arn:aws:iam::123456789012:role/aws_iot_kinesis"
                }
            }
        ]
    }
}
```

## 另请参阅
<a name="kinesis-rule-action-see-also"></a>
+ *Amazon Kinesis Data Streams 开发人员指南*中的[什么是 Amazon Kinesis Data Streams？](https://docs.amazonaws.cn/streams/latest/dev/)