Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

473
Vistas
Registros de AWS Lambda con AWSCLI: ¿Cómo puedo acceder a los registros de Lambda con AWSCLI?

Estaba tratando de trabajar con AWS Lambda usando awscli en una instancia de ubuntu ec2 y no tengo acceso a la consola de aws. Tenga en cuenta que no estoy usando serverless o zapper, comprimo directamente mi archivo main.py junto con los archivos de dependencia como se menciona aquí

Ejecuto la función así

aws lambda invoke --function-name python-test --invocation-type RequestResponse outfile.txt

Los errores dados en el archivo de salida son muy vagos y no ayudan en la depuración, sino que me confunden más. Usando el sistema del administrador, puedo reconocer los errores cuando ejecuto una prueba en la consola, pero ¿cómo puedo verificar esos registros usando awscli?

Así que intenté ejecutar aws cloudwatch list-metrics > cloudwatch_logs.log y busqué el nombre de la función 'python-test' en el archivo cloudwatch_logs.log. Puedo encontrar Namespace , MetricName , Dimensions para esta función, pero ¿cómo se accede a la registros?

¡Cualquier ayuda con enlaces a ejemplos similares es muy apreciada!

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Primero, obtenga el nombre del grupo de registros :

 aws logs describe-log-groups --query logGroups[*].logGroupName [ "/aws/lambda/MyFunction" ]

Luego, enumere los flujos de registros para ese grupo de registros:

 aws logs describe-log-streams --log-group-name '/aws/lambda/MyFunction' --query logStreams[*].logStreamName [ "2018/02/07/[$LATEST]140c61ffd59442b7b8405dc91d708fdc" ]

Finalmente, obtenga los eventos de registro para esa transmisión:

 aws logs get-log-events --log-group-name '/aws/lambda/MyFunction' --log-stream-name '2018/02/07/[$LATEST]140c61ffd59442b7b8405dc91d708fdc' { "nextForwardToken": "f/33851760153448034063427449515194237355552440866456338433", "events": [ { "ingestionTime": 1517965421523, "timestamp": 1517965421526, "message": "START RequestId: bca9c478-0ba2-11e8-81db-4bccfc644168 Version: $LATEST\n" }, { "ingestionTime": 1517965424581, "timestamp": 1517965424567, "message": "END RequestId: bca9c478-0ba2-11e8-81db-4bccfc644168\n" }, { "ingestionTime": 1517965424581, "timestamp": 1517965424567, "message": "REPORT RequestId: bca9c478-0ba2-11e8-81db-4bccfc644168\tDuration: 3055.39 ms\tBilled Duration: 3100 ms \tMemory Size: 128 MB\tMax Memory Used: 35 MB\t\n" } ], "nextBackwardToken": "b/33851760085631457914695824538087252860391482425578356736" }
over 4 years ago · Santiago Trujillo Denunciar

0

sabor jq :

Enumere el nombre del grupo AWS lambda (si la lista es demasiado grande, es posible que desee filtrarla con grep ):

 aws logs describe-log-groups | jq -r ".logGroups[].logGroupName"

Luego lea la propiedad del message de la última secuencia con:

 LOG_GROUP_NAME="/aws/lambda/awesomeFunction" LOG_STREAM_NAME=$(aws logs describe-log-streams --log-group-name "${LOG_GROUP_NAME}" | jq -r '.logStreams | sort_by(.creationTime) | .[-1].logStreamName') aws logs get-log-events --log-group-name "${LOG_GROUP_NAME}" --log-stream-name "${LOG_STREAM_NAME}" | jq -r '.events[] | select(has("message")) | .message'

Es posible que desee poner esto en un archivo logs.sh

Si desea más u otras transmisiones, es posible que desee modificar la .logStreams[0]

over 4 years ago · Santiago Trujillo Denunciar

0

El uso de AWS CLI puede ser un poco irritante porque el nombre de la transmisión cambia a medida que modifica su función. Descubrí que usar awslogs ( https://github.com/jorgebastida/awslogs ) es un mejor flujo de trabajo.

Enumere los grupos:

 awslogs groups

Filtrar Resultados.

 awslogs groups|grep myfunction

Luego obtenga los registros del grupo.

 awslogs get /aws/lambda/ShortenStack-mutationShortenLambdaBC1758AD-6KW0KAD3TYVE

Por defecto son los últimos 5 minutos, pero puede agregar el parámetro -s para elegir un tiempo, por ejemplo, -s 10m para los últimos 10 minutos.

La salida está coloreada si está en la terminal, o simple si la está canalizando a través de otros comandos, por ejemplo, grep para encontrar algo.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda