本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
CloudWatch 日誌
CloudWatch 日誌 (cloudwatchLogs
) 動作會將資料傳送到 Amazon CloudWatch 日誌。您可以使用 batchMode
,以一則訊息上傳多個裝置日誌記錄並加上時間戳記。您也可以指定動作傳送資料的日誌群組。
要求
此規則動作具有下列需求:
-
AWS IoT 可假設執行
logs:CreateLogStream
、logs:DescribeLogStreams
和logs:PutLogEvents
作業的 IAM 角色。如需詳細資訊,請參閱 授與 AWS IoT 規則所需的存取權。在 AWS IoT 主控台中,您可以選擇或建立允許 AWS IoT 執行此規則動作的角色。
-
如果您使用客戶管理 AWS KMS key (KMS 金鑰) 來加密 CloudWatch 記錄檔中的記錄資料,則服務必須具有代表呼叫者使用 KMS 金鑰的權限。如需詳細資訊,請參閱 Amazon CloudWatch 日誌使用者指南中的使用加密 CloudWatch 日誌 AWS KMS中的日誌資料。
batchMode
的 MQTT 訊息格式需求
如果您在關batchMode
閉的情況下使用「 CloudWatch 記錄檔」規則動作,則不需要 MQTT 訊息格式設定。(注意:batchMode
參數的預設值為 false
。) 不過,如果您在batchMode
開啟的情況下使用「 CloudWatch 記錄檔」規則動作 (參數值為true
),則包含裝置端記錄檔的 MQTT 訊息必須格式化為包含時間戳記和訊息承載。注意:timestamp
代表事件發生的時間,以 1970 年 1 月 1 日 00:00:00 UTC 起算的毫秒數表示。
以下是發佈格式的範例:
[
{"timestamp": 1673520691093, "message": "Test message 1"},
{"timestamp": 1673520692879, "message": "Test message 2"},
{"timestamp": 1673520693442, "message": "Test message 3"}
]
根據裝置端日誌的產生方式,這些日誌可能需要先篩選並重新格式化才能傳送,以符合此需求。如需詳細資訊,請參閱 MQTT 訊息承載。
與batchMode
參數無關,message
內容必須符合 AWS IoT 消息大小限制。如需詳細資訊,請參閱 AWS IoT Core
端點和配額。
參數
使用此動作建立 AWS IoT 規則時,必須指定下列資訊:
範例
下列 JSON 範例會定義 AWS IoT 規則中的「 CloudWatch 記錄檔」動作。
{ "topicRulePayload": { "sql": "SELECT * FROM 'some/topic'", "ruleDisabled": false, "awsIotSqlVersion": "2016-03-23", "actions": [ { "cloudwatchLogs": { "logGroupName": "IotLogs", "roleArn": "arn:aws:iam::123456789012:role/aws_iot_cw", "batchMode": false } } ] } }
另請參閱
-
什麼是 Amazon CloudWatch 日誌? 在 Amazon CloudWatch 日誌用戶指南