

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Criteri di riprova e code per lettere morte
<a name="eb-custom-bus-retry"></a>

Quando una chiamata target fallisce, la EventBridge riprova fino a raggiungere uno dei due limiti, per impostazione predefinita 5 tentativi o 300 secondi, quindi scrive un record nella `RetryPolicy` coda di ingresso di Amazon SQS. `OnFailureConfiguration.Arn` Imposta entrambi quando crei l'abbonato: senza una coda di lettere morte, un evento che esaurisce i tentativi viene eliminato e l'unica traccia è la metrica. `EventsDropped`

## Limiti per i tentativi
<a name="eb-custom-bus-retry-policy"></a>

La consegna si interrompe al limite raggiunto per primo.


| Limite | Intervallo | Predefinita | 
| --- | --- | --- | 
| MaxRetryAttempts | da 0 a 185 | 5 | 
| MaxEventAgeInSeconds | Da 60 a 86.400 | 300 | 

Le impostazioni predefinite sono più brevi rispetto alle 24 ore e 185 tentativi di Custom Event Bus - Classic target. Un progetto migrato che si basava su un giorno di tentativi deve essere impostato `MaxEventAgeInSeconds` esplicitamente su 86.400; in caso contrario, gli eventi che falliscono durante un'interruzione prevista superiore a 5 minuti finiscono nella coda delle lettere morte anziché essere consegnati in ritardo. Per un abbonato FIFO, un evento fallito blocca gli eventi successivi del gruppo per tutto il tempo in cui viene riprovato, quindi una finestra di riprova lunga scambia l'ordine con la latenza.

## Il record della lettera morta
<a name="eb-custom-bus-retry-record"></a>

Il record è un documento JSON, non l'evento. L'esempio seguente mostra un record per due eventi che hanno avuto esito negativo insieme in un batch.

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

Ogni errore che raggiunge la coda è stato ripetuto per primo: non c'è errore di consegna che salti. `RetryPolicy` Gli errori interni vengono EventBridge ripetuti EventBridge senza limiti e non producono mai un record. La tabella seguente elenca i codici che un record può contenere. `errorMessage`viene troncato a 1.024 caratteri.


| `errorCode` | Cosa è fallito | `errorMessage` | 
| --- | --- | --- | 
| CUSTOMER\_VALIDATION | L'API di destinazione ha rifiutato la richiesta (una risposta 4xx): un valore errato, un campo mancante, un corpo non valido | Il messaggio dell'API di destinazione | 
| ACCESS\_DENIED | EventBridge non ha potuto assumere il ruolo di consegna, al ruolo non è consentito chiamare il target o alla AWS KMS chiave del target è stato negato l'accesso | EventBridge non potevo dare per scontato{{role}}. Verifica che il ruolo esista e che la sua politica di fiducia consenta al responsabile del EventBridge servizio di assumerlo. o non ha  EventBridge potuto accedere{{resource}}. Verifica che esista e che la sua politica consenta l'accesso principale del EventBridge servizio.  | 
| RESOURCE\_NOT\_FOUND | L'obiettivo, o la sua AWS KMS chiave, non esiste | Il  messaggio di cui sopra non ha  potuto accedere o il messaggio generico | 
| INPUT\_TRANSFORMATION\_FAILURE | L'Inputespressione Transformer o universal-target ha generato o non ha prodotto alcun valore | L'errore di espressione | 
| THROTTLING | Il bersaglio ha limitato la chiamata | Il messaggio generico | 
| EXECUTION\_TIMEOUT | L'obiettivo non ha risposto entro InvocationTimeoutSeconds | Il messaggio generico | 
| REQUEST\_TOO\_LARGE | La richiesta ha superato il limite di dimensione del target; inferiore MaxBatchSize | Il messaggio generico | 
| PARTIAL\_BATCH\_FAILURE | La destinazione ha accettato una parte di un batch e ha rifiutato il resto; nel record sono failedMessages elencati solo gli eventi rifiutati | Il messaggio generico | 
| RESOURCE\_CONFLICT | L'obiettivo ha segnalato un conflitto, ad esempio un nome già in uso | Il messaggio generico | 
| KMS\_INVALID\_STATE | La AWS KMS chiave del bersaglio è disattivata o in attesa di eliminazione | Il messaggio generico | 
| SFN\_TYPE\_NOT\_SUPPORTED | REQUEST\_RESPONSEè stato utilizzato con una macchina a stati standard, che non supporta l'esecuzione sincrona | Il messaggio generico | 
| COMPUTE\_EXECUTION\_ERROR | Una REQUEST\_RESPONSE funzione o un'esecuzione è stata eseguita e ha segnalato un errore | Il messaggio generico | 
| INVOCATION\_DEPENDENCY\_INTERNAL | La destinazione ha restituito un errore del server (una risposta 5xx) | Il messaggio generico | 
| LOOP\_DETECTED | L'evento, o un evento da esso derivato, è già passato attraverso il bus di destinazione; vedere [Rilevamento del loop](eb-custom-bus-target-bus.md#eb-custom-bus-target-bus-loops) | Il messaggio generico | 
| INTERNAL\_SERVER\_ERROR | Un errore interno EventBridge durante la chiamata che ha comunque esaurito i tentativi | Il messaggio generico | 

Il messaggio generico è * La consegna non è riuscita. Utilizza il codice di errore e l'ID della richiesta di questo record durante le indagini e contatta l' AWS assistenza se l'errore persiste. * EventBridge lo utilizza ovunque la trasmissione del messaggio sottostante possa rivelare i dati interni di un altro servizio, quindi per quei codici si `targetRequestId` basano sui fatti su cui basarsi, insieme ai record di `EVENT_DELIVERY_ATTEMPT` registro, che contengono la richiesta inviata. `errorCode` Gli stessi valori sono gli attributi dei messaggi di Amazon SQS (`ERROR_CODE`,`ERROR_MESSAGE`,`SUBSCRIBER_ARN`,, `TARGET_ARN``BUS_ARN`,`RETRY_ATTEMPTS`)`EXHAUSTED_RETRY_CONDITION`, in modo che un consumatore possa indirizzarli senza analizzarne il testo. Per un abbonato FIFO, utilizza una coda FIFO come coda per le lettere morte; EventBridge imposta ogni record in base agli eventi, in modo che i record di un gruppo rimangano in `MessageGroupId` ordine. `EventGroupId`

Il ruolo di consegna deve essere inserito nella coda. `sqs:SendMessage` Senza di essa, la `OnFailureDestinationFailed` metrica conta ogni record che non è stato possibile scrivere e tali eventi vengono persi.

## Recupero degli eventi dalla coda delle lettere morte
<a name="eb-custom-bus-retry-redrive"></a>

La coda contiene i record, non gli eventi, quindi puoi ripetere la guida riproducendo gli eventi dal bus. Gli eventi devono comunque rientrare nel periodo di conservazione dell'autobus.

1. Leggi i registri e raccogli tutti`failedMessages[].eventId`, più i primi e gli ultimi`timestamp`.

1. Correggi la causa e `errorCode` i nomi: la politica del ruolo, l'obiettivo o l'espressione.

1. Crea un abbonato sullo stesso bus con lo stesso obiettivo e ruolo, una posizione di `POINT_IN_TIME` partenza con `StartingPoint` il primo timestamp e `EndPoint` l'ultimo e un `SYSTEM_METADATA` filtro sugli identificatori.

1. Quando l'abbonato ha consegnato gli eventi, eliminalo ed elimina i record dalla coda.

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

Gli eventi riprodotti arrivano in tempo reale `aws:DeliveryType``REPLAY`, in modo che un consumatore possa distinguerli dal traffico in tempo reale.