本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
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 開發人員指南》中的授予 Firehose 存取 Amazon S3 目的地的權限。
參數
當您使用此動作建立 AWS IoT 規則時,您必須指定下列資訊:
batchMode
-
(選用) 是否使用 以批次形式交付 Firehose
PutRecordBatch
串流。預設值為false
。若
batchMode
為true
且規則的 SQL 陳述式評估為 Array,則每個 Array 元會在PutRecordBatch
請求中形成一筆記錄。產生的陣列不能含有超過 500 條記錄。支援替代範本:否
deliveryStreamName
-
要寫入訊息資料的 Firehose 串流。
僅支援替代範本:API 和 AWS CLI
separator
-
(選用) 字元分隔符號,用於分隔寫入 Firehose 串流的記錄。若您略過此參數,則串流不會使用分隔符號。有效值:
,
(逗號)、\t
(索引標籤)、\n
(換行符號),\r\n
(Windows 換行)。支援替代範本:否
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 開發人員指南》中的什麼是 Amazon Data Firehose?