Usar o Lambda com CloudWatch Logs - AWS Lambda

Usar o Lambda com CloudWatch Logs

Você pode usar uma função do Lambda para monitorar e analisar logs de uma transmissão de log do Amazon CloudWatch Logs. Crie inscrições para um ou mais fluxos de log para invocar uma função quando os logs forem criados ou corresponderem a um padrão opcional. Use a função para enviar uma notificação ou manter o log em um banco de dados ou armazenamento.

O CloudWatch Logs invoca a função de forma assíncrona com um evento que contém dados de log. O valor do campo de dados é um arquivo .gzip codificado em base64.

exemplo Evento de mensagem do CloudWatch Logs
{ "awslogs": { "data": "ewogICAgIm1lc3NhZ2VUeXBlIjogIkRBVEFfTUVTU0FHRSIsCiAgICAib3duZXIiOiAiMTIzNDU2Nzg5MDEyIiwKICAgICJsb2dHcm91cCI6I..." } }

Quando decodificados e descompactados, os dados de log compõem um documento JSON com a seguinte estrutura:

exemplo Dados de mensagem do CloudWatch Logs (decodificados)
{ "messageType": "DATA_MESSAGE", "owner": "123456789012", "logGroup": "/aws/lambda/echo-nodejs", "logStream": "2019/03/13/[$LATEST]94fa867e5374431291a7fc14e2f56ae7", "subscriptionFilters": [ "LambdaStream_cloudwatchlogs-node" ], "logEvents": [ { "id": "34622316099697884706540976068822859012661220141643892546", "timestamp": 1552518348220, "message": "REPORT RequestId: 6234bffe-149a-b642-81ff-2e8e376d8aff\tDuration: 46.84 ms\tBilled Duration: 47 ms \tMemory Size: 192 MB\tMax Memory Used: 72 MB\t\n" } ] }