

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Kebijakan coba ulang dan antrian surat mati
<a name="eb-custom-bus-retry"></a>

Ketika panggilan target gagal, coba EventBridge lagi sampai salah satu dari dua batas ter `RetryPolicy` capai, secara default 5 upaya atau 300 detik, lalu tulis catatan ke antrian Amazon SQS di. `OnFailureConfiguration.Arn` Atur keduanya saat Anda membuat pelanggan: tanpa antrian huruf mati, peristiwa yang menghabiskan percobaan ulangnya dijatuhkan, dan satu-satunya jejak adalah metriknya. `EventsDropped`

## Batas coba lagi
<a name="eb-custom-bus-retry-policy"></a>

Pengiriman berhenti pada batas mana pun yang dicapai terlebih dahulu.


| Kuota | Kisaran | Default | 
| --- | --- | --- | 
| MaxRetryAttempts | 0 sampai 185 | 5 | 
| MaxEventAgeInSeconds | 60 sampai 86.400 | 300 | 

Defaultnya lebih pendek dari 24 jam dan 185 upaya target Custom Event Bus - Klasik. Desain yang dimigrasi yang mengandalkan satu hari percobaan ulang harus disetel `MaxEventAgeInSeconds` ke 86.400 secara eksplisit; jika tidak, peristiwa yang gagal selama pemadaman target lebih dari 5 menit akan masuk ke antrian surat mati alih-alih dikirim terlambat. Untuk pelanggan FIFO, peristiwa yang gagal memblokir peristiwa selanjutnya dalam grupnya selama dicoba ulang, jadi jendela percobaan ulang yang panjang memperdagangkan pesanan untuk latensi.

## Catatan surat mati
<a name="eb-custom-bus-retry-record"></a>

Catatan adalah dokumen JSON, bukan acara. Contoh berikut menunjukkan satu catatan untuk dua peristiwa yang gagal bersama-sama dalam satu 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": "..." }
    ]
}
```

Setiap kegagalan yang mencapai antrian dicoba ulang terlebih dahulu: tidak ada kegagalan pengiriman yang dilewati`RetryPolicy`. Kegag EventBridge alan di dalam dirinya sendiri dicoba ulang EventBridge tanpa batas dan tidak pernah menghasilkan catatan. Tabel berikut mencantumkan kode yang dapat dibawa oleh catatan. `errorMessage`dipangkas menjadi 1.024 karakter.


| `errorCode` | Apa yang gagal | `errorMessage` | 
| --- | --- | --- | 
| CUSTOMER\_VALIDATION | API target menolak permintaan (respons 4xx): nilai buruk, bidang yang hilang, badan yang cacat | Pesan API target sendiri | 
| ACCESS\_DENIED | EventBridge tidak dapat mengambil peran pengiriman, peran tidak diizinkan untuk memanggil target, atau AWS KMS kunci target ditolak akses | EventBridge tidak bisa berasumsi{{role}}. Periksa apakah peran tersebut ada dan kebijakan kepercayaannya memungkinkan prinsi EventBridge pal layanan untuk memikulkannya. atau tidak  EventBridge dapat mengakses{{resource}}. Periksa apakah itu ada dan kebijakannya memungkinkan akses utama EventBridge layanan.  | 
| RESOURCE\_NOT\_FOUND | Target, atau kun AWS KMS cinya, tidak ada | Tidak  dapat mengakses  pesan di atas, atau pesan umum | 
| INPUT\_TRANSFORMATION\_FAILURE | Eksp Transformer resi atau target universal Input melemparkan atau tidak menghasilkan nilai | Kesalahan ekspresi | 
| THROTTLING | Target membatasi panggilan | Pesan umum | 
| EXECUTION\_TIMEOUT | Target tidak merespon di dalam InvocationTimeoutSeconds | Pesan umum | 
| REQUEST\_TOO\_LARGE | Permintaan melebihi batas ukuran target; lebih rendah MaxBatchSize | Pesan umum | 
| PARTIAL\_BATCH\_FAILURE | Target menerima bagian dari batch dan menolak sisanya; catatan hanya mencant failedMessages umkan peristiwa yang ditolak | Pesan umum | 
| RESOURCE\_CONFLICT | Target melaporkan konflik, misalnya nama yang sudah digunakan | Pesan umum | 
| KMS\_INVALID\_STATE | Kunci target dinonaktifkan atau menunggu penghapusan AWS KMS  | Pesan umum | 
| SFN\_TYPE\_NOT\_SUPPORTED | REQUEST\_RESPONSEdigunakan dengan mesin status Standar, yang tidak mendukung eksekusi sinkron | Pesan umum | 
| COMPUTE\_EXECUTION\_ERROR | REQUEST\_RESPONSEFungsi atau eksekusi berjalan dan melaporkan kesalahan | Pesan umum | 
| INVOCATION\_DEPENDENCY\_INTERNAL | Target mengembalikan kesalahan server (respons 5xx) | Pesan umum | 
| LOOP\_DETECTED | Peristiwa, atau peristiwa yang berasal darinya, sudah melewati bus target; lihat [Deteksi loop](eb-custom-bus-target-bus.md#eb-custom-bus-target-bus-loops) | Pesan umum | 
| INTERNAL\_SERVER\_ERROR | Kegagalan di dalam EventBridge saat melakukan panggilan yang masih menghabiskan percobaan ulang | Pesan umum | 

Pesan umum adalah * Pengiriman gagal. Gunakan kode kesalahan catatan ini dan id permintaan saat menyelidiki, dan AWS hubungi Dukungan jika kegagalan berlanjut. * EventBridge menggunakannya di mana pun meneruskan pesan yang mendasarinya dapat mengekspos internal layanan lain, jadi untuk kode-kode tersebut `targetRequestId` merupakan fakta-fakta untuk bekerja, bersama dengan catatan `EVENT_DELIVERY_ATTEMPT` log, yang membawa permintaan yang dikirim. `errorCode` Nilai yang sama tiba sebagai atribut pesan Amazon SQS (`ERROR_CODE`,`ERROR_MESSAGE`,`SUBSCRIBER_ARN`,`TARGET_ARN`,,`BUS_ARN`,`EXHAUSTED_RETRY_CONDITION`,`RETRY_ATTEMPTS`), sehingga konsumen dapat mengarahkannya tanpa mengurai tubuh. Untuk pelanggan FIFO, gunakan antrian FIFO sebagai antrian huruf mati; EventBridge menetapkan setiap catatan `MessageGroupId` dari acara`EventGroupId`, sehingga catatan untuk satu grup tetap berurutan.

Peran pengiriman perlu `sqs:SendMessage` pada antrian. Tanpa itu, `OnFailureDestinationFailed` metrik menghitung setiap catatan yang tidak dapat ditulis, dan peristiwa itu hilang.

## Mengemudi ulang peristiwa dari antrian huruf mati
<a name="eb-custom-bus-retry-redrive"></a>

Antrian menyimpan catatan, bukan peristiwa, jadi Anda mengemudi ulang dengan memutar ulang peristiwa dari bus. Acara harus tetap dalam periode retensi bus.

1. Baca catatan dan kumpulkan semuanya`failedMessages[].eventId`, ditambah yang paling awal dan terbaru`timestamp`.

1. Perbaiki penyebab `errorCode` nama: kebijakan peran, target, atau ekspresi.

1. Buat pelanggan di bus yang sama dengan target dan peran yang sama, posisi `POINT_IN_TIME` awal yang `StartingPoint` merupakan cap waktu paling awal dan yang `EndPoint` terbaru, dan `SYSTEM_METADATA` filter pada pengidentifikasi.

1. Ketika pelanggan telah mengirimkan acara, hapus dan hapus catatan dari antrian.

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

Acara yang diputar ulang tiba `aws:DeliveryType``REPLAY`, sehingga konsumen dapat memberitahunya dari lalu lintas langsung.