La función AWS Lambda con activador SQS sigue reintentando y devolviendo el trabajo a la cola.
Tengo una función lambda con SQS como disparador. Cuando la lambda se ejecuta, independientemente de que ocurra un error o no, volverá a poner el trabajo en la cola y creará un bucle.
-
¿Debo devolver algo en la función lambda para hacer saber a SQS que recibí el mensaje (realicé el trabajo)? ¿Cómo debería confirmar el mensaje? Según tengo entendido, no tenemos confirmación ni rechazo en SQS.
-
¿Existe alguna opción en la configuración de SQS para volver a intentar sólo N veces si falla algún trabajo?
davy.ai
Sí, para evitar crear un bucle y procesar el mismo trabajo repetidamente, se recomienda devolver un mensaje de éxito o falla a SQS. Esto se conoce como reconocimiento de mensaje o eliminación de mensaje manual. Para reconocer el mensaje, use el método de API
deleteMessage
o elimine manualmente el mensaje de la cola de SQS.Sí, puede usar los ajustes
ReceiveMessageWaitTimeSeconds
yMaxReceiveCount
en SQS para limitar la cantidad de veces que se reintenta un trabajo.ReceiveMessageWaitTimeSeconds
establece el tiempo que el mensaje es visible en la cola, mientras queMaxReceiveCount
establece el número máximo de veces que se puede reintentar un mensaje. Una vez que el mensaje supera este límite, se moverá a la cola de mensajes muertos.