

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
<a name="sns-configure-dead-letter-queue"></a>

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 selengkapnya, lihat [Antrian surat mati Amazon SNS](sns-dead-letter-queues.md) dan [Pengiriman ulang pesan Amazon SNS](sns-message-delivery-retries.md).

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

**catatan**  
Untuk [topik FIFO](sns-fifo-topics.md), 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
<a name="dead-letter-queue-prerequisites"></a>

Sebelum Anda mengonfigurasi antrean surat mati, selesaikan prasyarat berikut:

1. [Buat topik Amazon SNS](sns-create-topic.md) bernama `MyTopic`.

1. [Buat antrean Amazon SQS](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-create-queue.html) bernama `MyEndpoint`, yang akan digunakan sebagai titik akhir untuk berlangganan Amazon SNS.

1. (Lewati untuk CloudFormation) [Berlangganan antrian ke topik](sns-sqs-as-subscriber.md).

1. [Buat antrean Amazon SQS](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-create-queue.html) bernama `MyDeadLetterQueue`, untuk digunakan sebagai antrean surat mati untuk berlangganan Amazon SNS.

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

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "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 Konsol Manajemen AWS
<a name="configure-dead-letter-queue-aws-console"></a>

Sebelum memulai tutorial ini, pastikan Anda menyelesaikan [prasyarat](#dead-letter-queue-prerequisites).

1. Masuk ke [konsol Amazon SQS](https://console.aws.amazon.com/sqs/).

1. [Buat antrean Amazon SQS](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-create-queue.html) atau menggunakan antrean yang ada dan perhatikan ARN antrean pada **tab Detail** antrean, misalnya:

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

1. Masuk ke [konsol Amazon SNS](https://console.aws.amazon.com/sns/home).

1. Di panel navigasi, pilih **Berlangganan**.

1. Pada halaman **Berlangganan**, pilih langganan yang ada, lalu pilih **Edit**.

1. Pada {{1234a567-bc89-012d-3e45-6fg7h890123i}} halaman **Edit**, perluas bagian **kebijakan Remrive (antrean huruf mati)**, lalu lakukan hal berikut:

   1. Pilih **Diaktifkan**.

   1. Tentukan ARN antrean Amazon SQS.

1. Pilih **Simpan perubahan**.

   Langganan Anda dikonfigurasi untuk menggunakan antrean surat mati.

## Untuk mengonfigurasi antrian huruf mati untuk langganan Amazon SNS menggunakan SDK AWS
<a name="configure-dead-letter-queue-aws-sdk"></a>

Sebelum Anda menjalankan contoh ini, pastikan Anda menyelesaikan [prasyarat](#dead-letter-queue-prerequisites).

Untuk menggunakan AWS SDK, Anda harus mengonfigurasinya dengan kredensi Anda. Untuk informasi selengkapnya, lihat [File konfigurasi dan kredensial bersama](https://docs.aws.amazon.com/sdkref/latest/guide/creds-config-files.html) di Panduan Referensi *Alat AWS SDKs dan Alat*.

Contoh kode berikut menunjukkan cara menggunakan`SetSubscriptionAttributesRedrivePolicy`.

------
#### [ Java ]

**SDK for Java 1.x**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/java/example_code/sns#code-examples). 

```
// 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
<a name="configure-dead-letter-queue-aws-cli"></a>

Sebelum memulai tutorial ini, pastikan Anda menyelesaikan [prasyarat](#dead-letter-queue-prerequisites).

1. Pasang dan konfigurasikan AWS CLI. Untuk informasi selengkapnya, silakan lihat [Panduan Pengguna *AWS Command Line Interface *](https://docs.aws.amazon.com/cli/latest/userguide/).

1. 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 CloudFormation
<a name="configure-dead-letter-queue-aws-cloudformation"></a>

Sebelum memulai tutorial ini, pastikan Anda menyelesaikan [prasyarat](#dead-letter-queue-prerequisites).

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

1. Masuk ke [CloudFormation konsol](https://console.aws.amazon.com/cloudformation/).

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

1. Pada halaman **Tentukan Detail**, masukkan `MyDeadLetterQueue` untuk **Nama Tumpukan**, lalu pilih **Selanjutnya**. 

1. Pada halaman **Opsi**, pilih **Selanjutnya**.

1. Pada halaman **Tinjau**, pilih **Buat**.

   CloudFormation mulai membuat `MyDeadLetterQueue` tumpukan dan menampilkan status **CREATE\_IN\_PROGRESS**. Ketika proses selesai, CloudFormation menampilkan status **CREATE\_COMPLETE**.