CloudWatch 日誌 - AWS IoT Core

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

CloudWatch 日誌

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

要求

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

  • AWS IoT 可假設執行logs:CreateLogStreamlogs:DescribeLogStreamslogs: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 規則時,必須指定下列資訊:

logGroupName

動作傳送資料的 CloudWatch 記錄群組。

支持替換模板:API 和 AWS CLI 僅

roleArn

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

支援替代範本:否

(選用) batchMode

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

支援替代範本:否

範例

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

另請參閱