Creé una función lambda que se activa a través del cron de eventos de cloudwatch. Mientras probaba, descubrí que el reintento de lambda no funciona en caso de tiempo de espera. Quiero entender cuál es el comportamiento esperado. ¿Debería volver a intentarlo en caso de tiempo de espera?
PD He revisado el documento en el sitio de aws pero aún no puedo descifrar https://docs.aws.amazon.com/lambda/latest/dg/retries-on-errors.html
Encontré la documentación de aws sobre esto,
"El manejo de errores para un origen de eventos determinado depende de cómo se invoque Lambda. Amazon CloudWatch Events está configurado para invocar una función Lambda de forma asíncrona ".
" Invocación asíncrona: los eventos asíncronos se ponen en cola antes de usarse para invocar la función Lambda. Si AWS Lambda no puede procesar completamente el evento, volverá a intentar la invocación automáticamente dos veces, con demoras entre intentos".
Entonces, el reintento debería ocurrir en este caso. No estoy seguro de qué estaba mal con mi función lambda, simplemente eliminé y creé nuevamente y volví a intentarlo esta vez.
A juzgar por los documentos a los que se vinculó , parece que se vuelve a llamar a la función lambda si se agotó el tiempo de espera y el tiempo de espera se debe a que está esperando otro recurso (es decir, está bloqueado por la red):
La función se agota al intentar llegar a un punto final.
Como un evento cron no está basado en flujo (si es síncrono o asíncrono parece no quedar claro en los documentos), se volverá a intentar.
CloudWatch Event invoca una función de Lambda de forma asincrónica .
Para la invocación asíncrona, Lambda administra la cola de eventos asíncronos de la función e intenta volver a intentarlo dos veces más en caso de errores, incluido el tiempo de espera . https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html
Entonces, con la configuración predeterminada, su función debería volver a intentarlo con errores de tiempo de espera. Si no es así, puede haber otras razones como las siguientes: