

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Politiques relatives aux nouvelles tentatives et files d'attente
<a name="eb-custom-bus-retry"></a>

Lorsqu'un appel cible échoue, EventBridge réessayez jusqu'à ce que l'une des deux limites `RetryPolicy` soit atteinte, par défaut 5 tentatives ou 300 secondes, puis écrit un enregistrement dans la file d'attente Amazon SQS. `OnFailureConfiguration.Arn` Définissez les deux lorsque vous créez l'abonné : sans file d'attente de lettres mortes, un événement qui épuise ses nouvelles tentatives est supprimé et la seule trace est la métrique. `EventsDropped`

## Limites de nouvelles tentatives
<a name="eb-custom-bus-retry-policy"></a>

La livraison s'arrête à la limite atteinte en premier.


| Limite | Range | Par défaut | 
| --- | --- | --- | 
| MaxRetryAttempts | 0 et 185 | 5 | 
| MaxEventAgeInSeconds | 60 à 86 400 | 300 | 

Les valeurs par défaut sont plus courtes que les 24 heures et 185 tentatives d'une cible Custom Event Bus - Classic. Une conception migrée qui reposait sur une journée de nouvelles tentatives doit être définie `MaxEventAgeInSeconds` explicitement sur 86 400 ; sinon, les événements qui échouent pendant une panne cible de plus de 5 minutes sont placés dans la file d'attente des lettres mortes au lieu d'être livrés en retard. Pour un abonné FIFO, un événement défaillant bloque les derniers événements de son groupe tant qu'il est réessayé. Ainsi, une longue fenêtre de nouvelle tentative permet de remplacer l'ordre par la latence.

## Le record lettre morte
<a name="eb-custom-bus-retry-record"></a>

L'enregistrement est un document JSON, pas l'événement. L'exemple suivant montre un enregistrement pour deux événements qui ont échoué ensemble au cours d'un même lot.

```
{
    "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": "..." }
    ]
}
```

Chaque échec qui atteint la file d'attente a été réessayé en premier : aucun échec de livraison n'est ignoré`RetryPolicy`. Les échecs EventBridge internes sont réessayés EventBridge sans limite et ne produisent jamais d'enregistrement. Le tableau suivant répertorie les codes qu'un enregistrement peut contenir. `errorMessage`est tronqué à 1 024 caractères.


| `errorCode` | Qu'est-ce qui a échoué | `errorMessage` | 
| --- | --- | --- | 
| CUSTOMER\_VALIDATION | L'API cible a rejeté la demande (une réponse 4xx) : une valeur incorrecte, un champ manquant, un corps mal formé | Le propre message de l'API cible | 
| ACCESS\_DENIED | EventBridge n'a pas pu assumer le rôle de diffusion, le rôle n'est pas autorisé à appeler la cible ou l'accès à la AWS KMS clé de la cible a été refusé | EventBridge Je ne pouvais pas le supposer{{role}}. Vérifiez que le rôle existe et que sa politique de confiance permet au principal EventBridge de service de l'assumer. ou n'EventBridge a pas pu y accéder{{resource}}. Vérifiez qu'il existe et que sa politique autorise l'accès principal au EventBridge service.  | 
| RESOURCE\_NOT\_FOUND | La cible, ou sa AWS KMS clé, n'existe pas | Le   message d'impossibilité d'accéder ci-dessus, ou le message générique | 
| INPUT\_TRANSFORMATION\_FAILURE | L'Inputexpression Transformer ou la cible universelle n'a émis ou n'a produit aucune valeur | L'erreur d'expression | 
| THROTTLING | La cible a limité l'appel | Le message générique | 
| EXECUTION\_TIMEOUT | La cible n'a pas répondu dans les délais InvocationTimeoutSeconds | Le message générique | 
| REQUEST\_TOO\_LARGE | La demande a dépassé la limite de taille de la cible ; inférieure MaxBatchSize | Le message générique | 
| PARTIAL\_BATCH\_FAILURE | La cible a accepté une partie d'un lot et a rejeté le reste ; l'enregistrement failedMessages répertorie uniquement les événements rejetés | Le message générique | 
| RESOURCE\_CONFLICT | La cible a signalé un conflit, par exemple un nom déjà utilisé | Le message générique | 
| KMS\_INVALID\_STATE | La AWS KMS clé de la cible est désactivée ou en attente de suppression | Le message générique | 
| SFN\_TYPE\_NOT\_SUPPORTED | REQUEST\_RESPONSEa été utilisé avec une machine à états standard, qui ne prend pas en charge l'exécution synchrone | Le message générique | 
| COMPUTE\_EXECUTION\_ERROR | Une REQUEST\_RESPONSE fonction ou une exécution a été exécutée et a signalé une erreur | Le message générique | 
| INVOCATION\_DEPENDENCY\_INTERNAL | La cible a renvoyé une erreur de serveur (une réponse 5xx) | Le message générique | 
| LOOP\_DETECTED | L'événement, ou un événement dérivé de celui-ci, est déjà passé par le bus cible ; voir [Détection de boucle](eb-custom-bus-target-bus.md#eb-custom-bus-target-bus-loops) | Le message générique | 
| INTERNAL\_SERVER\_ERROR | Un échec interne EventBridge lors de l'appel qui a tout de même épuisé les nouvelles tentatives | Le message générique | 

Le message générique est * L'échec de la livraison. Utilisez le code d'erreur et l'identifiant de demande de cet enregistrement lors de vos recherches, et contactez le AWS support si l'échec persiste. * EventBridge l'utilise partout où la transmission du message sous-jacent pourrait exposer les éléments internes d'un autre service. Ainsi, pour ces codes, `targetRequestId` les faits `errorCode` et les faits à partir desquels il faut travailler, ainsi que les enregistrements du `EVENT_DELIVERY_ATTEMPT` journal contenant la demande envoyée. Les mêmes valeurs arrivent sous forme d'attributs de message Amazon SQS (`ERROR_CODE`,`ERROR_MESSAGE`,`SUBSCRIBER_ARN`,`TARGET_ARN`,`BUS_ARN`,`EXHAUSTED_RETRY_CONDITION`,`RETRY_ATTEMPTS`), afin qu'un consommateur puisse les utiliser sans analyser le corps du message. Pour un abonné FIFO, utilisez une file d'attente FIFO comme file d'attente de lettres mortes ; EventBridge définit chaque enregistrement `MessageGroupId` à partir des événements`EventGroupId`, afin que les enregistrements d'un groupe restent en ordre.

Le rôle de diffusion doit `sqs:SendMessage` figurer dans la file d'attente. Sans cela, la `OnFailureDestinationFailed` métrique compte chaque enregistrement qui n'a pas pu être écrit, et ces événements sont perdus.

## Rediriger les événements depuis la file d'attente des lettres mortes
<a name="eb-custom-bus-retry-redrive"></a>

La file d'attente contient des enregistrements, pas des événements. Vous pouvez donc reconduire en rejouant les événements depuis le bus. Les événements doivent toujours se situer dans la période de rétention du bus.

1. Lisez les dossiers et collectez-en tous`failedMessages[].eventId`, ainsi que les plus anciens et les plus récents`timestamp`.

1. Corrigez la cause `errorCode` des noms : la politique du rôle, la cible ou l'expression.

1. Créez un abonné sur le même bus avec la même cible et le même rôle, une position de `POINT_IN_TIME` départ dont l'horodatage `StartingPoint` est le plus ancien et le plus récent, et un `SYSTEM_METADATA` filtre sur les identifiants. `EndPoint`

1. Lorsque l'abonné a diffusé les événements, supprimez-le et supprimez les enregistrements de la file d'attente.

```
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" }'
```

Les événements rejoués arrivent avec `aws:DeliveryType``REPLAY`, afin que le consommateur puisse les différencier du trafic en direct.