CloudWatch Logs
A ação do CloudWatch Logs (cloudwatchLogs
) envia dados para o Amazon CloudWatch Logs. Você pode usar batchMode
para carregar e marcar com data e hora vários registros de log do dispositivo em uma mensagem. Você pode também especificar o grupo de logs para o qual a ação envia dados.
Requisitos
Esta ação de regra tem os seguintes requisitos:
-
Um perfil do IAM que AWS IoT pode assumir a execução de operações
logs:CreateLogStream
,logs:DescribeLogStreams
, elogs:PutLogEvents
. Para obter mais informações, consulte Conceder a uma regra AWS IoT o acesso que ela exige.No console AWS IoT, você pode escolher ou criar uma função para permitir que AWS IoT execute essa ação de regra.
-
Se você usar uma chave KMS AWS KMS key gerenciada pelo cliente para criptografar dados de log no CloudWatch Logs, o serviço deverá ter permissão para usar a chave KMS em nome do chamador. Para obter mais informações, consulte Criptografia de dados de log no CloudWatch Logs usando o AWS KMS no Manual do usuário do Amazon CloudWatch Logs.
Requisitos de formato de mensagem MQTT para batchMode
Se você usar a ação de regra do CloudWatch Logs com batchMode
desativada, não há requisitos de formatação de mensagens do MQTT. (Nota: o batchMode
valor padrão do parâmetro é false
.) No entanto, se você usar a ação de regra do CloudWatch Logs com a batchMode
ativada (o valor do parâmetro é true
), as mensagens MQTT contendo registros do lado do dispositivo devem ser formatadas para conter um carimbo de data e hora e uma carga útil da mensagem. Nota: timestamp
representa a hora em que o evento ocorreu e é expresso como um número de milissegundos após 1º de janeiro de 1970 00:00:00 UTC.
A seguir está um exemplo do formato de publicação:
[
{"timestamp": 1673520691093, "message": "Test message 1"},
{"timestamp": 1673520692879, "message": "Test message 2"},
{"timestamp": 1673520693442, "message": "Test message 3"}
]
Dependendo de como os registros do lado do dispositivo são gerados, poderá ser necessário filtrá-los e reformatá-los antes de serem enviados para cumprir este requisito. Para obter mais informações, consulte Carga útil da mensagem MQTT.
Independentemente do parâmetro batchMode
, o message
conteúdo deve estar em conformidade com as AWS IoT limitações de tamanho da mensagem. Para obter mais informações, consulte AWS IoT CoreEndpoints e cotas.
Parâmetros
Ao criar uma regra AWS IoT com esta ação, você deve especificar as seguintes informações:
logGroupName
-
O grupo de logs do CloudWatch para o qual a ação envia dados.
Compatível com modelos de substituição: API e AWS CLI somente
roleArn
-
O perfil do IAM que permite acessar o grupo de logs do CloudWatch. Para obter mais informações, consulte Requisitos.
Compatível com modelos de substituição: Não
- (opcional)
batchMode
-
Indica se lotes de registros de log serão extraídos e enviados para o CloudWatch. Os valores incluem
true
oufalse
(padrão). Para obter mais informações, consulte Requisitos.Compatível com modelos de substituição: Não
Exemplos
O seguinte exemplo de JSON mostra como definir uma ação do CloudWatch Logs em uma regra AWS IoT.
{ "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 } } ] } }
Consulte também
-
O que é o Amazon CloudWatch Logs? no Guia do usuário do Amazon CloudWatch Logs