Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

917
Visualizações
¿Cómo registrar JSON sin procesar en Cloudwatch desde AWS Lambda en node.js?

Tengo algunas Lambdas basadas en node.js que registran datos.

Para consultar y filtrar correctamente los datos, etc., quiero registrar como datos JSON puros de mis Lambdas.

Sin embargo, cuando hago un console.log regular, crea una cadena normal de datos.

 console.log({a:1,b:2,x:"xxx"})

Resultados en esto:

 2020-04-29T14:46:45.722Z 3f64c499-fbae-4a84-996c-5e5f0cb5302c INFO { a: 1, b: 2, x: 'xxx' }

La línea registrada anterior no parece que se pueda buscar como JSON utilizando las diversas opciones de coincidencia de filtros en CloudWatch.

Intenté llamar a la API de AWS.CloudWatchLogs directamente, pero como uso lambda no puedo mantener un token entre las invocaciones de las funciones, por lo que no estoy seguro de que ese sea el camino a seguir.

¿Alguien más ha tenido éxito al registrar JSON sin procesar desde un Javascript Lambda?

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

El problema es que console.log() no va directamente a stdout/stderr. Puedes ver que usando este Lambda:

 const process = require('process'); exports.handler = async (event) => { console.log("message 1"); process.stdout.write("message 2\n"); };

Si invoca eso, verá un resultado como este:

 START RequestId: 6942bebc-1997-42cd-90c2-d76b44c637283 Version: $LATEST 2020-04-29T17:06:07.303Z 6935bebc-1d97-42cd-90c2-d76b4a637683 INFO message 1 message 2 END RequestId: 6942bebc-1997-42cd-90c2-d76b44c637283

Entonces, para obtener el resultado que desea, puede redefinir console.log para ir a stderr o escribir en stdout/stderr directamente.

O podría usar un marco de registro que escribe en stdout/stderr, lo que puede brindarle más flexibilidad sobre cómo se escriben sus mensajes. No hago desarrollo de nodos, pero he oído que Winston es el marco de registro estándar.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda