CloudWatch Logs - AWS IoT Core

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

CloudWatch Logs

CloudWatch Logs (cloudwatchLogs) 動作會將資料傳送至 Amazon CloudWatch Logs。您可以使用 batchMode,以一則訊息上傳多個裝置日誌記錄並加上時間戳記。您也可以指定動作傳送資料的日誌群組。

要求

此規則動作具有下列需求:

  • AWS IoT 可以擔任以執行 logs:CreateLogStreamlogs:DescribeLogStreamslogs:PutLogEvents操作的 IAM 角色。如需詳細資訊,請參閱授予 AWS IoT 規則所需的存取權

    在 AWS IoT 主控台中,您可以選擇或建立角色, AWS IoT 以允許 執行此規則動作。

  • 如果您使用客戶受管 AWS KMS key (KMS 金鑰) 來加密 CloudWatch Logs 中的日誌資料,則服務必須具有代表發起人使用 KMS 金鑰的許可。如需詳細資訊,請參閱《Amazon CloudWatch Logs 使用者指南》使用 AWS KMS加密 CloudWatch Logs 中的日誌資料

batchMode 的 MQTT 訊息格式需求

如果您在關閉 batchMode 的情況下使用 CloudWatch Logs 規則動作,則不需要 MQTT 訊息格式設定。(注意:batchMode 參數的預設值為 false。) 不過,如果您在 batchMode 開啟的情況下使用 CloudWatch Logs 規則動作 (參數值為 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 規則時,您必須指定下列資訊:

logGroupName

其動作傳送資料的 CloudWatch 日誌群組。

僅支援替代範本:API 和 AWS CLI

roleArn

允許存取 CloudWatch Logs 群組的 IAM 角色。如需詳細資訊,請參閱要求

支援替代範本:否

(選用) batchMode

指出是否要擷取日誌記錄批次並上傳至 CloudWatch。值包括 truefalse (預設值)。如需詳細資訊,請參閱要求

支援替代範本:否

範例

下列 JSON 範例定義 AWS IoT 規則中的 CloudWatch Logs 動作。

{ "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 } } ] } }

另請參閱