Mi función de AWS Lambda experimenta errores intermitentes cuando reviso las métricas de Amazon CloudWatch de la función y no tengo claro por qué. ¿Podría deberse el aumento de la tasa de error de la función de Lambda a problemas de tiempo de espera? Si es así, ¿cómo puedo determinar si se agota el tiempo de espera de mi función de Lambda?
Descripción corta
Al revisar el grupo de registros de CloudWatch de la función de Lambda, busque la frase Task timed out (Se agotó el tiempo de espera de la tarea). A continuación, utilice los ID de solicitud de las invocaciones con el tiempo de espera agotado asociadas para recuperar los registros completos de cada tiempo de espera de invocación agotado.
Para solucionar cualquier error de tiempo de espera agotado que identifique, consulte ¿Cómo soluciono los errores de tiempo de espera de invocación de funciones de Lambda?
Nota: Cuando se agota el tiempo de espera de invocación de una función de Lambda, aparece el mensaje de error Task timed out (Se agotó el tiempo de espera de la tarea) en los registros de CloudWatch de la invocación incorrecta en lugar del mensaje Error. Si solo busca los mensajes Error en los registros de CloudWatch de su función, la búsqueda solo devuelve errores de tiempo de ejecución relacionados con el código en lugar de errores de tiempo de espera de invocación agotado. Para obtener más información, consulte Monitoring AWS Lambda errors using Amazon CloudWatch.
Resolución
Requisitos previos
Si aún no lo ha hecho, conceda permisos de registro de CloudWatch a su función de Lambda. Para obtener más información, consulte Políticas administradas por AWS para características de Lambda .
Para recuperar los ID de solicitud de cualquier llamada con el tiempo de espera agotado, busque en el grupo de registros de CloudWatch de la función la frase “Task timed out” (Tiempo de espera de la tarea agotado)
Nota: Las consultas de CloudWatch Logs Insights generan cargos en función de la cantidad de datos que se consultan. Para obtener más información, consulte los Precios de Amazon CloudWatch.
1. Abra la Página de funciones de la consola de Lambda.
2. Elija una función.
3. Elija Monitor (Monitorear).
4. Elija View logs in CloudWatch (Ver registros en CloudWatch). Se abrirá la página Log group details (Detalles del grupo de registros) de la función en la consola de CloudWatch.
5. Elija View in Logs Insights (Ver en Logs Insights).
6. En el cuadro de texto de consulta Logs Insights, ingrese la siguiente consulta y, a continuación, elija Run query (Ejecutar consulta):
fields @timestamp, @requestId, @message, @logStream
| filter @message like "Task timed out"
| sort @timestamp desc
| limit 100
la respuesta devuelve una lista de ID de solicitud para las invocaciones con el tiempo de espera agotado.
Para obtener más información, consulte Análisis de los datos de registros con Amazon CloudWatch Logs Insights.
Nota: Para grupos de registros grandes, considere la posibilidad de limitar el alcance de la búsqueda agregando una función datetime (fecha y hora) a la consulta de Insights. Para obtener más información, consulte Sintaxis de consulta de CloudWatch Logs Insights.
Utilice los ID de solicitud de las invocaciones con el tiempo de espera agotado para recuperar los registros completos de cada tiempo de espera de invocación agotado
Genere registros mediante la funcionalidad de registro estándar para el lenguaje de programación que está utilizando. Para obtener instrucciones específicas del lenguaje, consulte la sección Uso de la AWS CLI de Acceso a los registros de Amazon CloudWatch Logs para AWS Lambda.