Antrean surat mati Amazon SNS (DLQs) - Amazon Simple Notification Service

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

Antrean surat mati Amazon SNS (DLQs)

Antrean surat mati adalah antrean Amazon SQS yang langganan Amazon SNS dapat menargetkan pesan yang tidak dapat dikirim ke pelanggan dengan suskes. Pesan yang tidak dapat dikirim karena kesalahan klien atau kesalahan server disimpan dalam antrean surat mati untuk analisis lebih lanjut atau pemrosesan ulang. Untuk informasi lebih lanjut, lihat Mengkonfigurasi antrean surat mati Amazon SNS untuk berlangganan dan Pengiriman ulang pesan Amazon SNS.

catatan
  • Langganan Amazon SNS dan antrean Amazon SQS harus di bawah akun AWS yang sama dan Wilayah.

  • Untuk topik FIFO, Anda dapat menggunakan antrean Amazon SQS sebagai antrian surat mati untuk langganan Amazon SNS. Langganan topik FIFO menggunakan antrian FIFO, dan langganan topik standar menggunakan antrian standar.

  • Untuk menggunakan antrean Amazon SQS terenkripsi sebagai antrian huruf mati, Anda harus menggunakan KMS kustom dengan kebijakan kunci yang memberikan akses utama layanan Amazon SNS ke tindakan API. AWS KMS Untuk informasi selengkapnya, lihat Enkripsi diam di panduan dan Melindungi Data Amazon SQS Menggunakan Server-Side Encryption (SSE) dan AWS KMS di Panduan Developer Amazon Simple Queue Service.

Mengapa pengiriman pesan gagal?

Secara umum, pengiriman pesan gagal ketika Amazon SNS tidak dapat mengakses titik akhir berlangganan karena sisi klien atau kesalahan sisi server. Ketika Amazon SNS menerima galat sisi klien, atau terus menerima galat sisi server untuk pesan di luar jumlah coba lagi yang ditentukan oleh kebijakan coba lagi yang sesuai, Amazon SNS membuang pesan-kecuali antrean surat mati dilampirkan ke langganan. Pengiriman yang gagal tidak mengubah status langganan Anda. Untuk informasi selengkapnya, lihat Pengiriman ulang pesan Amazon SNS.

Kesalahan sisi klien

Kesalahan sisi klien dapat terjadi ketika Amazon SNS memiliki basi langganan metadata. Kesalahan ini sering terjadi ketika pemilik menghapus endpoint (misalnya, fungsi Lambda berlangganan topik Amazon SNS) atau ketika pemilik perubahan kebijakan yang melekat pada titik akhir berlangganan dengan cara yang mencegah Amazon SNS mengirimkan pesan ke titik akhir. Amazon SNS tidak coba lagi pengiriman pesan yang gagal sebagai akibat dari kesalahan sisi klien.

Kesalahan sisi server

Kesalahan sisi server dapat terjadi ketika sistem yang bertanggung jawab untuk titik akhir berlangganan menjadi tidak tersedia atau mengembalikan pengecualian yang menunjukkan bahwa ia tidak dapat memproses permintaan yang valid dari Amazon SNS. Ketika kesalahan sisi server terjadi, Amazon SNS mencoba kembali pengiriman gagal menggunakan fungsi linear atau backoff eksponensial. Untuk kesalahan sisi server yang disebabkan oleh AWS dikelola titik akhir didukung oleh Amazon SQS atau AWS Lambda, Amazon SNS mencoba kembali pengiriman hingga 100,015 kali, lebih 23 hari.

Pelanggan dikelola titik akhir (seperti HTTP, SMTP, SMS, atau mobile push) juga dapat menyebabkan kesalahan sisi server. Amazon SNS mencoba kembali pengiriman ke jenis titik akhir juga. Sementara titik akhir HTTP mendukung kebijakan coba lagi yang ditetapkan pelanggan, Amazon SNS menetapkan kebijakan coba lagi pengiriman internal untuk 50 kali lebih dari 6 jam, untuk SMTP, SMS, dan titik akhir mobile push.

Bagaimana cara kerja antrean surat mati?

Antrean surat mati melekat berlangganan Amazon SNS (bukan topik) karena pengiriman pesan terjadi di tingkat berlangganan. Hal ini memungkinkan Anda mengidentifikasi titik akhir target asli untuk setiap pesan dengan lebih mudah.

Sebuah antrean surat mati terkait dengan berlangganan Amazon SNS adalah antrean Amazon SQS biasa. Untuk informasi selengkapnya tentang periode retensi pesan, lihat Kuota Terkait Pesan di Panduan Developer Amazon Simple Queue Service. Anda dapat mengubah periode penyimpanan pesan menggunakan Amazon SQS tindakan SetQueueAttributes API. Agar aplikasi Anda lebih tangguh, sebaiknya pengaturan periode penyimpanan maksimum untuk antrean surat mati hingga 14 hari.

Bagaimana pesan dipindahkan ke antrean surat mati?

Pesan Anda dipindahkan ke antrean surat mati menggunakan kebijakan penggerak ulang. Kebijakan redrive adalah objek JSON yang mengacu pada ARN antrean surat mati. Atribut deadLetterTargetArn menentukan ARN tersebut. ARN harus menunjuk ke antrean Amazon SQS di Akun AWS dan Wilayah yang sama sebagai langganan Amazon SNS Anda. Untuk informasi selengkapnya, lihat Mengkonfigurasi antrean surat mati Amazon SNS untuk berlangganan.

Objek JSON berikut adalah kebijakan redrive sampel, dilampirkan ke berlangganan SNS.

{ "deadLetterTargetArn": "arn:aws:sqs:us-east-2:123456789012:MyDeadLetterQueue" }

Bagaimana cara memindahkan pesan dari antrean surat mati?

Anda dapat memindahkan pesan dari antrean surat mati dalam dua cara:

  • Hindari menulis logika konsumen Amazon SQS – Atur antrean surat mati Anda sebagai sumber acara untuk fungsi Lambda untuk menguras antrean surat mati Anda.

  • Menulis logika konsumen Amazon SQS – Gunakan API Amazon SQS,AWS SDK, atau AWS CLI untuk menulis logika konsumen kustom untuk polling, pengolahan, dan menghapus pesan dalam antrean surat mati.

Bagaimana saya bisa memantau dan mencatat antrean surat mati?

Anda dapat menggunakan CloudWatch metrik Amazon untuk memantau antrian surat mati yang terkait dengan langganan Amazon SNS Anda. Semua antrian Amazon SQS memancarkan CloudWatch metrik dengan interval satu menit. Untuk informasi selengkapnya, lihat CloudWatch Metrik yang Tersedia untuk Amazon SQS di Panduan Pengembang Layanan Antrian Sederhana Amazon. Semua langganan Amazon SNS dengan antrian huruf mati juga memancarkan metrik. CloudWatch Untuk informasi selengkapnya, lihat Memantau topik Amazon SNS menggunakan CloudWatch.

Untuk mengetahui aktivitas dalam antrian surat mati, Anda dapat menggunakan metrik dan alarm. CloudWatch Misalnya, ketika Anda mengharapkan antrian huruf mati selalu kosong, Anda dapat membuat CloudWatch alarm untuk metrik. NumberOfMessagesSent Anda dapat mengatur ambang batas alarm ke 0 dan menentukan topik Amazon SNS untuk diberitahu ketika alarm berbunyi. Topik Amazon SNS ini dapat mengirimkan notifikasi alarm Anda ke jenis titik akhir apa pun (seperti alamat email, nomor telepon, atau aplikasi halaman seluler).

Anda dapat menggunakan CloudWatch Log untuk menyelidiki pengecualian yang menyebabkan pengiriman Amazon SNS gagal dan pesan dikirim ke antrian surat mati. Amazon SNS dapat mencatat pengiriman yang berhasil dan gagal. CloudWatch Untuk informasi selengkapnya, lihat Status pengiriman pesan Amazon SNS.