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
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
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
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 dilewatiRetryPolicy. 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. errorMessagedipangkas 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 berasumsirole. Periksa apakah peran tersebut ada dan kebijakan kepercayaannya memungkinkan prinsi EventBridge pal layanan untuk memikulkannya. atau tidak EventBridge dapat mengaksesresource. 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 | 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 acaraEventGroupId, 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
Antrian menyimpan catatan, bukan peristiwa, jadi Anda mengemudi ulang dengan memutar ulang peristiwa dari bus. Acara harus tetap dalam periode retensi bus.
-
Baca catatan dan kumpulkan semuanya
failedMessages[].eventId, ditambah yang paling awal dan terbarutimestamp. -
Perbaiki penyebab
errorCodenama: kebijakan peran, target, atau ekspresi. -
Buat pelanggan di bus yang sama dengan target dan peran yang sama, posisi
POINT_IN_TIMEawal yangStartingPointmerupakan cap waktu paling awal dan yangEndPointterbaru, danSYSTEM_METADATAfilter pada pengidentifikasi. -
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:DeliveryTypeREPLAY, sehingga konsumen dapat memberitahunya dari lalu lintas langsung.