

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# Firehose
<a name="kinesis-firehose-rule-action"></a>

Firehose(`firehose`) 動作會將資料從 MQTT 訊息傳送至 Amazon Data Firehose 串流。

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

此規則動作具有下列需求：
+  AWS IoT 可以擔任以執行`firehose:PutRecord`操作的 IAM 角色。如需詳細資訊，請參閱[授予 AWS IoT 規則所需的存取權](iot-create-role.md)。

  在 AWS IoT 主控台中，您可以選擇或建立角色， AWS IoT 以允許 執行此規則動作。
+ 如果您使用 Firehose 將資料傳送至 Amazon S3 儲存貯體，並使用受管客戶 AWS KMS key 來加密 AWS KMS Amazon S3 中的靜態資料，Firehose 必須能夠存取您的儲存貯體，並有權代表發起人使用 AWS KMS key 。如需詳細資訊，請參閱《[Amazon Data Firehose 開發人員指南》中的授予 Firehose 存取 Amazon S3 目的地](https://docs.aws.amazon.com/firehose/latest/dev/controlling-access.html#using-iam-s3)的權限。 **

## Parameters
<a name="kinesis-firehose-rule-action-parameters"></a>

當您使用此動作建立 AWS IoT 規則時，您必須指定下列資訊：

`batchMode`  
（選用） 是否使用 以批次方式交付 Firehose [https://docs.aws.amazon.com/firehose/latest/APIReference/API_PutRecordBatch.html](https://docs.aws.amazon.com/firehose/latest/APIReference/API_PutRecordBatch.html) 串流。預設值為 `false`。  
若 `batchMode` 為 `true` 且規則的 SQL 陳述式評估為 Array，則每個 Array 元會在 `PutRecordBatch` 請求中形成一筆記錄。產生的陣列不能含有超過 500 條記錄。  
支援[替代範本](iot-substitution-templates.md)：否

`deliveryStreamName`  
要寫入訊息資料的 Firehose 串流。  
僅支援[替代範本](iot-substitution-templates.md)：API 和 AWS CLI 

`separator`  
（選用） 字元分隔符號，用於分隔寫入 Firehose 串流的記錄。若您略過此參數，則串流不會使用分隔符號。有效值：`,`(逗號)、`\t` (索引標籤)、`\n` (換行符號)，`\r\n` (Windows 換行)。  
支援[替代範本](iot-substitution-templates.md)：否

`roleArn`  
允許存取 Firehose 串流的 IAM 角色。如需詳細資訊，請參閱[要求](#kinesis-firehose-rule-action-requirements)。  
支援[替代範本](iot-substitution-templates.md)：否

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

下列 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"
                }
            }
        ]
    }
}
```

## 另請參閱
<a name="kinesis-firehose-rule-action-see-also"></a>
+ 《[Amazon Data Firehose 開發人員指南》中的什麼是](https://docs.aws.amazon.com/firehose/latest/dev/) *Amazon Data Firehose*？