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

573
Vistas
AWS Lambda: cómo detener los reintentos cuando hay una falla

Sé que cuando falla una función Lambda (por ejemplo, cuando hay un tiempo de espera), intenta ejecutar la función 3 veces más nuevamente. ¿Hay alguna forma de evitar este comportamiento? He estado leyendo la documentación, pero no encontré nada al respecto.

¡Gracias!

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

0

Vuelve a intentarlo cuando se trata de una falla no controlada (un error que no detectó) o si lo manejó pero aún le dijo a Lambda que lo volviera a intentar (por ejemplo, en Node, cuando llama a callback() con un primer argumento no nulo).

Para evitar que vuelva a intentarlo, debe asegurarse de que se maneje cualquier error y decirle a Lambda que su invocación finalizó correctamente devolviendo un error (o en Node, llamando a callback(null, <any>) .

Para hacer esto, puede encerrar todo el cuerpo de su función de controlador con un try-catch.

 module.exports.handler(event, context, callback) { try { // Do you what you want to do. return callback(null, 'Success') } catch (err) { // You probably still want to log it. console.error(err) // Return happy despite all the hardships you went through. return callback(null, 'Still success') } }

En cuanto a las fallas por tiempos de espera, hay cosas que puede hacer.

Si se agota el tiempo fuera de su controlador, generalmente hay algún problema con su código (por ejemplo, configuración incorrecta de la base de datos, etc.) que debe revisar.

Si se agota el tiempo dentro de su controlador durante una invocación, hay algo que puede hacer al respecto.

  • Si se trata de una solicitud HTTP, debe configurar el tiempo de espera de la solicitud para que sea más corto que el tiempo de espera de su Lambda, de esta manera fallará correctamente y podrá detectarlo.
  • Si se trata de una conexión de base de datos, probablemente pueda establecer un tiempo de espera utilizando la biblioteca que está utilizando.
  • Si es su lógica la que se agota, puede actualizar Lambda para usar una CPU de memoria más alta para hacerlo más rápido. También puede verificar context.getRemainingTimeInMillis() para saber si Lambda está a punto de agotarse, para que pueda manejarlo antes.
over 4 years ago · Santiago Trujillo Denunciar

0

EDITADO : ahora es posible cambiar la configuración de lambda para deshabilitar los reintentos (ver anuncio )


Respuesta original :

No hay forma de desactivar el comportamiento de reintento de las funciones de Lambda. Sugiero dos opciones para lidiar con eso:

  1. Haga que su Lambda pueda manejar los casos de reintento correctamente. Puede usar context.AwsRequestId (o el campo correspondiente) que será el mismo cuando se vuelva a intentar un Lambda.
  2. Coloque su Lambda dentro de una máquina de estado (usando AWS Step Functions). Solo entonces puede deshabilitar los reintentos. Esta publicación de blog que he escrito da una explicación más general.
over 4 years ago · Santiago Trujillo Denunciar

0

Si llama a la función de forma asíncrona, en la Console , en Function configuration , puede modificar los Retry attempts :

ingrese la descripción de la imagen aquí

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