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

576
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 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