CloudWatch 日志 - Amazon IoT Core
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

CloudWatch 日志

CloudWatch Logs (cloudwatchLogs) 操作将数据发送到亚马逊 CloudWatch 日志。您可以使用 batchMode 在一条消息中上载多条设备日志记录并为其加上时间戳。您还可以指定操作要向其发送数据的日志组。

要求

此规则操作具有以下要求:

  • Amazon IoT 可以承担以执行 logs:CreateLogStreamlogs:DescribeLogStreams、和 logs:PutLogEvents 操作的 IAM 角色。有关更多信息,请参阅向 Amazon IoT 规则授予所需的访问权限

    在 Amazon IoT 控制台中,您可以选择或创建一个角色以允许 Amazon IoT 执行此规则操作。

  • 如果您使用客户托管式Amazon KMS key(KMS 密钥)对 Log CloudWatch s 中的日志数据进行静态加密,服务必须具有代表调用方使用 KMS 的权限。有关更多信息,请参阅 Amazon Lo CloudWatch gs 用户指南Amazon KMS中的使用加密 CloudWatch 日志数据

batchMode 的 MQTT 消息格式要求

如果您在batchMode关闭的情况下使用 CloudWatch Logs 规则操作,则没有 MQTT 消息格式要求。注意:这是参数的原定设置状态,其值为 false。但是,如果您在(参数值为)batchMode处于开启状态(参数值为true)时使用 Logs 规则操作,则包含设备端日志的 MQTT 消息必须格式化为包含时间戳和消息有效负载。 CloudWatch 注意: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内容都必须符合 Amazon IoT 消息大小限制。有关更多信息,请参阅 Amazon IoT Core 终端节点和配额

参数

使用此操作创建 Amazon IoT 规则时,您必须指定以下信息:

logGroupName

操作要向其发送数据 CloudWatch 的日志组。

支持替换模板:仅限 API 和 Amazon CLI

roleArn

允许访问 CloudWatch 日志组的 IM 角色。有关更多信息,请参阅要求

支持替换模板:否

(可选)batchMode

表示是否将提取批量日志记录并将其上载到批量 CloudWatch。值包括 truefalse(原定设置)。有关更多信息,请参阅要求

支持替换模板:否

示例

下面的 JSON 示例定义 CloudWatch 了Amazon IoT规则中的 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 } } ] } }

另请参阅