Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Políticas de reintentos y colas de mensajes muertos
Cuando se produce un error en RetryPolicy una llamada de destino, EventBridge vuelve a intentarlo hasta alcanzar uno de los dos límites establecidos (5 intentos o 300 segundos de forma predeterminada) y, a continuación, escribe un registro en la cola de Amazon SQS. OnFailureConfiguration.Arn Configure ambos al crear el suscriptor: si no hay una cola de mensajes muertos, se descarta un evento que agote sus reintentos y el único seguimiento es la métrica. EventsDropped
Límites de reintentos
La entrega se detiene en el límite que se alcance primero.
| Límite | Range | Predeterminado |
|---|---|---|
MaxRetryAttempts | De 0 a 185 | 5 |
MaxEventAgeInSeconds | 60 a 86.400 | 300 |
Los valores predeterminados son más cortos que los de un bus de eventos personalizado: el objetivo clásico es de 24 horas y 185 intentos. Un diseño migrado que dependiera de un día de reintentos debe establecerse MaxEventAgeInSeconds en 86.400 de forma explícita; de lo contrario, los eventos que fallan durante una interrupción prevista de más de 5 minutos pasan a la cola de correo muerto en lugar de entregarse tarde. En el caso de un suscriptor de FIFO, un evento fallido bloquea los eventos posteriores de su grupo mientras se vuelva a intentar, por lo que un período de reintento prolongado cambia el orden por la latencia.
El récord de cartas muertas
El registro es un documento JSON, no el evento. El siguiente ejemplo muestra un registro para dos eventos que fallaron juntos en un lote.
{ "version": "1.0", "busArn": "arn:aws:events:us-east-1:111122223333:event-busv2/orders/EXAMPLE1234567890abcdef", "subscriberArn": "arn:aws:events:us-east-1:111122223333:subscriber/large-orders/EXAMPLEabcdef1234567890", "targetArn": "arn:aws:sqs:us-east-1:111122223333:large-orders", "errorCode": "ACCESS_DENIED", "errorMessage": "The delivery role is not authorized to perform sqs:SendMessage on the target.", "exhaustedRetryCondition": "MaximumEventAgeInSeconds", "retryAttempts": 4, "failedMessages": [ { "eventId": "a1b2c3d4-...", "eventGroupId": "order-1001", "deduplicationId": null, "timestamp": "2026-09-16T18:40:12Z", "targetRequestId": "..." }, { "eventId": "e5f6a7b8-...", "eventGroupId": "order-1001", "deduplicationId": null, "timestamp": "2026-09-16T18:40:13Z", "targetRequestId": "..." } ] }
Todos los errores que llegaban a la cola se volvían a intentar primero: no hay ningún error de entrega que se salte. RetryPolicy Los errores internos EventBridge se vuelven a intentar EventBridge sin límite y nunca producen un registro. En la siguiente tabla se enumeran los códigos que puede contener un registro. errorMessagese trunca a 1.024 caracteres.
errorCode | ¿Qué ha fallado | errorMessage |
|---|---|---|
CUSTOMER_VALIDATION | La API de destino rechazó la solicitud (una respuesta de 4xx): un valor incorrecto, falta un campo o el cuerpo tiene un formato incorrecto | El propio mensaje de la API de destino |
ACCESS_DENIED | EventBridge no pudo asumir la función de entrega, la función no puede llamar al objetivo o se ha denegado el acceso a la AWS KMS clave del objetivo | EventBridge no podía asumirlorole. Compruebe que el rol existe y que su política de confianza permite que el principal del EventBridge servicio lo asuma. o no EventBridge pudo accederresource. Compruebe que existe y que su política permite el acceso del principal del EventBridge servicio. |
RESOURCE_NOT_FOUND | El objetivo, o su AWS KMS clave, no existe | No se pudo acceder al mensaje anterior o al mensaje genérico |
INPUT_TRANSFORMATION_FAILURE | La expresión Transformer o la Input expresión de destino universal no arrojó o produjo ningún valor | El error de expresión |
THROTTLING | El objetivo bloqueó la llamada | El mensaje genérico |
EXECUTION_TIMEOUT | El objetivo no respondió en ese momento InvocationTimeoutSeconds | El mensaje genérico |
REQUEST_TOO_LARGE | La solicitud superó el límite de tamaño del objetivo; es inferior MaxBatchSize | El mensaje genérico |
PARTIAL_BATCH_FAILURE | El objetivo aceptó parte de un lote y rechazó el resto; el registro failedMessages muestra solo los eventos rechazados | El mensaje genérico |
RESOURCE_CONFLICT | El objetivo informó de un conflicto, por ejemplo, un nombre que ya estaba en uso | El mensaje genérico |
KMS_INVALID_STATE | La AWS KMS clave del objetivo está deshabilitada o pendiente de eliminación | El mensaje genérico |
SFN_TYPE_NOT_SUPPORTED | REQUEST_RESPONSEse usó con una máquina de estado estándar, que no admite la ejecución sincrónica | El mensaje genérico |
COMPUTE_EXECUTION_ERROR | Se ejecutó una REQUEST_RESPONSE función o ejecución y se notificó un error | El mensaje genérico |
INVOCATION_DEPENDENCY_INTERNAL | El objetivo devolvió un error del servidor (una respuesta de 5xx) | El mensaje genérico |
LOOP_DETECTED | El evento, o un evento derivado de él, ya pasó por el bus de destino; consulte Detección de bucles | El mensaje genérico |
INTERNAL_SERVER_ERROR | Un error interno EventBridge al realizar la llamada que aún agotó los reintentos | El mensaje genérico |
El mensaje genérico es Se ha producido un error en la entrega. Utilice el código de error y el identificador de solicitud de este registro al investigar y póngase en contacto con el servicio de AWS asistencia si el error persiste. EventBridge lo utiliza siempre que la transmisión del mensaje subyacente pueda poner al descubierto los aspectos internos de otro servicio, por lo que esos códigos targetRequestId son los datos con los que trabajar, junto con los EVENT_DELIVERY_ATTEMPT registros que contienen la solicitud que se ha enviado. errorCode Llegan los mismos valores que los atributos de los mensajes de Amazon SQS (ERROR_CODEERROR_MESSAGE,,SUBSCRIBER_ARN,TARGET_ARN,BUS_ARN,RETRY_ATTEMPTS)EXHAUSTED_RETRY_CONDITION, por lo que un consumidor puede direccionarlos sin necesidad de analizar el cuerpo. Para un suscriptor de FIFO, utilice una cola FIFO como cola de mensajes muertos; EventBridge establece cada registro a MessageGroupId partir de los eventosEventGroupId, de modo que los registros de un grupo se mantengan en orden.
El rol de entrega debe estar en la lista de espera. sqs:SendMessage Sin ella, la OnFailureDestinationFailed métrica cuenta cada registro que no se pudo escribir y esos eventos se pierden.
Redirigir los eventos de la cola de mensajes muertos
La cola contiene registros, no eventos, por lo que puedes reconducir reproduciendo los eventos del autobús. Los eventos deben seguir dentro del período de retención del autobús.
-
Lee los registros y recopila todos
failedMessages[].eventId, además de los más antiguos y los más recientestimestamp. -
Corrija la causa y
errorCodelos nombres: la política del rol, el objetivo o la expresión. -
Crea un suscriptor en el mismo bus con el mismo objetivo y rol, una posición
POINT_IN_TIMEinicial queStartingPointsea la marca de tiempo más antigua y laEndPointúltima, y unSYSTEM_METADATAfiltro para los identificadores. -
Cuando el suscriptor haya entregado los eventos, elimínelo y elimine los registros de la cola.
aws eventsv2 create-subscriber \ --name redrive-2026-09-16 \ --event-bus-arn arn:aws:events:us-east-1:111122223333:event-busv2/orders/EXAMPLE1234567890abcdef \ --starting-position POINT_IN_TIME \ --point-in-time-configuration '{ "PointType": "TIMESTAMP", "StartingPoint": "2026-09-16T18:40:00Z", "EndPoint": "2026-09-16T18:41:00Z" }' \ --filter-configuration '{ "Filters": [ { "Scope": "SYSTEM_METADATA", "Pattern": "{\"aws:EventId\":[\"a1b2c3d4-...\",\"e5f6a7b8-...\"]}" } ] }' \ --invoke-configuration '{ "TargetArn": "arn:aws:sqs:us-east-1:111122223333:large-orders", "RoleArn": "arn:aws:iam::111122223333:role/EventBusDeliveryRole" }'
Los eventos reproducidos llegan con ellos aws:DeliveryTypeREPLAY, por lo que el consumidor puede distinguirlos a partir del tráfico en vivo.