Mengkonfigurasi antrean surat mati Amazon SNS untuk berlangganan - Amazon Simple Notification Service

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

Mengkonfigurasi antrean surat mati Amazon SNS untuk berlangganan

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 Antrean surat mati Amazon SNS (DLQs) dan Pengiriman ulang pesan Amazon SNS.

Halaman ini menunjukkan bagaimana Anda dapat menggunakan AWS Management Console, AWS SDK AWS CLI, dan AWS CloudFormation untuk mengonfigurasi antrian huruf mati untuk langganan Amazon SNS.

catatan

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.

Prasyarat

Sebelum Anda mengonfigurasi antrean surat mati, selesaikan prasyarat berikut:

  1. Buat topik Amazon SNS bernama MyTopic.

  2. Buat antrean Amazon SQS bernama MyEndpoint, yang akan digunakan sebagai titik akhir untuk berlangganan Amazon SNS.

  3. (Lewati untuk AWS CloudFormation) Berlangganan antrian ke topik.

  4. Buat antrean Amazon SQS bernama MyDeadLetterQueue, untuk digunakan sebagai antrean surat mati untuk berlangganan Amazon SNS.

  5. Untuk memberikan Amazon SNS akses utama ke tindakan Amazon SQS API, mengatur kebijakan antrean berikut untuk MyDeadLetterQueue.

    { "Statement": [{ "Effect": "Allow", "Principal": { "Service": "sns.amazonaws.com" }, "Action": "SQS:SendMessage", "Resource": "arn:aws:sqs:us-east-2:123456789012:MyDeadLetterQueue", "Condition": { "ArnEquals": { "aws:SourceArn": "arn:aws:sns:us-east-2:123456789012:MyTopic" } } }] }

Untuk mengonfigurasi antrian surat mati untuk langganan Amazon SNS menggunakan AWS Management Console

Sebelum memulai tutorial ini, pastikan Anda menyelesaikan prasyarat.

  1. Masuk ke konsol Amazon SQS.

  2. Buat antrean Amazon SQS atau menggunakan antrean yang ada dan perhatikan ARN antrean pada tab Detail antrean, misalnya:

    arn:aws:sqs:us-east-2:123456789012:MyDeadLetterQueue
  3. Masuk ke konsol Amazon SNS.

  4. Di panel navigasi, pilih Berlangganan.

  5. Pada halaman Berlangganan, pilih langganan yang ada, lalu pilih Edit.

  6. Pada Edit halaman 1234a567-bc89-012d-3e45-6fg7h890123i, memperluas Bagian kebijakan redrive (antrean surat mati), dan kemudian lakukan hal berikut:

    1. Pilih Diaktifkan.

    2. Tentukan ARN antrean Amazon SQS.

  7. Pilih Simpan perubahan.

    Langganan Anda dikonfigurasi untuk menggunakan antrean surat mati.

Untuk mengonfigurasi antrian huruf mati untuk langganan Amazon SNS menggunakan SDK AWS

Sebelum Anda menjalankan contoh ini, pastikan Anda menyelesaikan prasyarat.

Untuk menggunakan AWS SDK, Anda harus mengonfigurasinya dengan kredensi Anda. Untuk informasi selengkapnya, lihat File konfigurasi dan kredensial bersama di Panduan Referensi AWS SDK dan Alat.

Contoh kode berikut menunjukkan cara menggunakanSetSubscriptionAttributesRedrivePolicy.

Java
SDK for Java 1.x
catatan

Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di Repositori Contoh Kode AWS.

// Specify the ARN of the Amazon SNS subscription. String subscriptionArn = "arn:aws:sns:us-east-2:123456789012:MyEndpoint:1234a567-bc89-012d-3e45-6fg7h890123i"; // Specify the ARN of the Amazon SQS queue to use as a dead-letter queue. String redrivePolicy = "{\"deadLetterTargetArn\":\"arn:aws:sqs:us-east-2:123456789012:MyDeadLetterQueue\"}"; // Set the specified Amazon SQS queue as a dead-letter queue // of the specified Amazon SNS subscription by setting the RedrivePolicy attribute. SetSubscriptionAttributesRequest request = new SetSubscriptionAttributesRequest() .withSubscriptionArn(subscriptionArn) .withAttributeName("RedrivePolicy") .withAttributeValue(redrivePolicy); sns.setSubscriptionAttributes(request);

Untuk mengonfigurasi antrian surat mati untuk langganan Amazon SNS menggunakan AWS CLI

Sebelum memulai tutorial ini, pastikan Anda menyelesaikan prasyarat.

  1. Pasang dan konfigurasikan AWS CLI. Untuk informasi selengkapnya, lihat AWS Command Line Interface Panduan Pengguna.

  2. Gunakan perintah berikut ini.

    aws sns set-subscription-attributes \ --subscription-arn arn:aws:sns:us-east-2:123456789012:MyEndpoint:1234a567-bc89-012d-3e45-6fg7h890123i --attribute-name RedrivePolicy --attribute-value "{\"deadLetterTargetArn\": \"arn:aws:sqs:us-east-2:123456789012:MyDeadLetterQueue\"}"

Untuk mengonfigurasi antrian surat mati untuk langganan Amazon SNS menggunakan AWS CloudFormation

Sebelum memulai tutorial ini, pastikan Anda menyelesaikan prasyarat.

  1. Salin kode JSON berikut ke file bernama MyDeadLetterQueue.json.

    { "Resources": { "mySubscription": { "Type" : "AWS::SNS::Subscription", "Properties" : { "Protocol": "sqs", "Endpoint": "arn:aws:sqs:us-east-2:123456789012:MyEndpoint", "TopicArn": "arn:aws:sns:us-east-2:123456789012:MyTopic", "RedrivePolicy": { "deadLetterTargetArn": "arn:aws:sqs:us-east-2:123456789012:MyDeadLetterQueue" } } } } }
  2. Masuk ke AWS CloudFormation konsol.

  3. Pada halaman Pilih templat, pilih Unggah templat ke Amazon S3, pilih file MyDeadLetterQueue.json Anda, dan kemudian pilih Selanjutnya.

  4. Pada halaman Tentukan Detail, masukkan MyDeadLetterQueue untuk Nama Tumpukan, lalu pilih Selanjutnya.

  5. Pada halaman Opsi, pilih Selanjutnya.

  6. Pada halaman Tinjau, pilih Buat.

    AWS CloudFormation mulai membuat MyDeadLetterQueue tumpukan dan menampilkan status CREATE_IN_PROGRESS. Ketika proses selesai, AWS CloudFormation menampilkan status CREATE_COMPLETE.