Quiero modificar la configuración de la política de reintentos de Amazon EventBridge y configurar una cola de mensajes fallidos (DLQ) para las invocaciones con error.
Solución
Nota: Si se muestran errores al ejecutar comandos de la Interfaz de la línea de comandos de AWS (AWS CLI), consulta Solución de problemas de AWS CLI. Además, asegúrate de usar la versión más reciente de la AWS CLI.
Modificación del tiempo de los reintentos de EventBridge
EventBridge utiliza un retraso exponencial y fluctuación o un retraso aleatorio para reenviar el evento durante 24 horas y hasta 185 veces. Para evitar invocaciones con error, puedes modificar el tiempo y la cantidad de reintentos de EventBridge en la configuración de la política de reintentos del objetivo.
Nota: EventBridge reintenta responder con un código de estado HTTP 5## o 4## durante un máximo de 24 horas.
Para usar la consola de EventBridge para configurar la política de reintentos del objetivo, sigue estos pasos:
- Abre la consola de EventBridge.
- Selecciona la regla de EventBridge.
- Selecciona la pestaña Objetivos y, a continuación, elige Editar.
- Amplía la sección Configuración adicional.
- En Reintentos, introduce el valor personalizado.
Nota: En el caso de las reglas de eventos con varios objetivos, debes configurar individualmente la política de reintentos de cada objetivo.
También puedes ejecutar el comando put-targets de la AWS CLI o la API RetryPolicy para configurar una política de reintentos.
EventBridge gestiona los errores de eventos de diferentes maneras. Por ejemplo, es posible que EventBridge no entregue un evento cuando un objetivo no tenga los permisos necesarios o si ya no existe. O bien, es posible que EventBridge no intente reenviar el evento. En su lugar, es posible que EventBridge elimine el evento o lo envíe a una DLQ que hayas configurado.
Configuración de una DLQ de EventBridge
Para evitar la pérdida de eventos debido a un error de entrega, configura una DLQ de EventBridge. La DLQ recibe todos los eventos con error para procesarlos más adelante.
Nota: Antes de configurar una DLQ para un objetivo, debes crear una cola de Amazon Simple Queue Service (Amazon SQS). En la política de colas de Amazon SQS, agrega los permisos necesarios para que la regla de EventBridge invoque la cola. Si cifras la cola de Amazon SQS, agrega los permisos Decrypt y GenerateDataKey a la política de claves de AWS Key Management Service (AWS KMS).
Para configurar una DLQ, sigue estos pasos:
- Abre la consola de EventBridge.
- Selecciona la regla de EventBridge.
- Selecciona la pestaña Objetivos y, a continuación, elige Editar.
- Amplía la sección Configuración adicional.
- En la sección Cola de mensajes fallidos, selecciona una opción en función de si la DLQ de SQS está en la misma cuenta de AWS o en una cuenta diferente.
También puedes ejecutar el comando put-targets de la AWS CLI para configurar una DLQ. En el parámetro DeadLetterConfig, utiliza el ARN de la cola de SQS.
Recuperación de los detalles del error de una DLQ
Para confirmar que la regla de eventos envió el mensaje a una DLQ, revisa la métrica InvocationSentToDLQ.
Si aparece un mensaje, sigue estos pasos:
- Abre la consola de SQS.
- Elige la cola que usas como DLQ para la regla de eventos.
- Selecciona Enviar y recibir mensajes y, a continuación, elige Sondeo de mensajes.
- En la sección Mensajes, abre el mensaje.
- Elige Atributos para determinar por qué EventBridge no ha podido entregar un mensaje al objetivo.
Nota: Los datos de la pestaña Cuerpo son la carga útil que EventBridge envía al objetivo cuando la entrega del evento no falla.
Información relacionada
Monitoring Amazon EventBridge (Supervisión de Amazon EventBridge)
EventBridge metrics (Métricas de EventBridge)