

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

# Bekerja dengan Amazon Simple Notification Service
<a name="examples-simple-notification-service"></a>

Dengan Amazon Simple Notification Service, Anda dapat dengan mudah mendorong pesan notifikasi real-time dari aplikasi Anda ke pelanggan melalui beberapa saluran komunikasi. Topik ini menjelaskan bagaimana melakukan beberapa fungsi dasar Amazon SNS.

## Buat topik
<a name="sns-create-topic"></a>

**Topik** adalah pengelompokan logis saluran komunikasi yang mendefinisikan sistem mana yang akan mengirim pesan, misalnya, mengipasi pesan AWS Lambda dan webhook HTTP. Anda mengirim pesan ke Amazon SNS, lalu mereka didistribusikan ke saluran yang ditentukan dalam topik. Ini membuat pesan tersedia untuk pelanggan.

Untuk membuat topik, pertama-tama buat [CreateTopicRequest](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sns/model/CreateTopicRequest.html)objek, dengan nama set topik menggunakan `name()` metode di pembuat. Kemudian, kirim objek permintaan ke Amazon SNS dengan menggunakan `createTopic()` metode [SnsClient](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sns/SnsClient.html). Anda dapat menangkap hasil permintaan ini sebagai [CreateTopicResponse](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sns/model/CreateTopicResponse.html)objek, seperti yang ditunjukkan dalam cuplikan kode berikut.

 **Impor** 

```
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.sns.SnsClient;
import software.amazon.awssdk.services.sns.model.CreateTopicRequest;
import software.amazon.awssdk.services.sns.model.CreateTopicResponse;
import software.amazon.awssdk.services.sns.model.SnsException;
```

 **Kode** 

```
    public static String createSNSTopic(SnsClient snsClient, String topicName ) {

        CreateTopicResponse result = null;
        try {
            CreateTopicRequest request = CreateTopicRequest.builder()
                    .name(topicName)
                    .build();

            result = snsClient.createTopic(request);
            return result.topicArn();
        } catch (SnsException e) {

            System.err.println(e.awsErrorDetails().errorMessage());
            System.exit(1);
        }
        return "";
    }
```

Lihat [contoh lengkapnya](https://github.com/awsdocs/aws-doc-sdk-examples/blob/da520cb4436f8567a90b6f73f77232fd590a50bf/javav2/example_code/sns/src/main/java/com/example/sns/CreateTopic.java) di GitHub.

## Buat daftar Amazon SNS topik Anda
<a name="sns-crelistate-topics"></a>

Untuk mengambil daftar Amazon SNS topik yang ada, buat [ListTopicsRequest](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sns/model/ListTopicsRequest.html)objek. Kemudian, kirim objek permintaan ke Amazon SNS dengan menggunakan `listTopics()` metode`SnsClient`. Anda dapat menangkap hasil permintaan ini sebagai [ListTopicsResponse](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sns/model/ListTopicsResponse.html)objek.

Cuplikan kode berikut mencetak kode status HTTP permintaan dan daftar Amazon Resource Names (ARNs) untuk topik Anda Amazon SNS .

 **Impor** 

```
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.sns.SnsClient;
import software.amazon.awssdk.services.sns.model.ListTopicsRequest;
import software.amazon.awssdk.services.sns.model.ListTopicsResponse;
import software.amazon.awssdk.services.sns.model.SnsException;
```

 **Kode** 

```
    public static void listSNSTopics(SnsClient snsClient) {

        try {
            ListTopicsRequest request = ListTopicsRequest.builder()
                   .build();

            ListTopicsResponse result = snsClient.listTopics(request);
            System.out.println("Status was " + result.sdkHttpResponse().statusCode() + "\n\nTopics\n\n" + result.topics());

        } catch (SnsException e) {
            System.err.println(e.awsErrorDetails().errorMessage());
            System.exit(1);
        }
    }
```

Lihat [contoh lengkapnya](https://github.com/awsdocs/aws-doc-sdk-examples/blob/da520cb4436f8567a90b6f73f77232fd590a50bf/javav2/example_code/sns/src/main/java/com/example/sns/ListTopics.java) di GitHub.

## Berlangganan titik akhir ke suatu topik
<a name="sns-subscribe-endpoint-topic"></a>

Setelah Anda membuat topik, Anda dapat mengonfigurasi saluran komunikasi mana yang akan menjadi titik akhir untuk topik tersebut. Pesan didistribusikan ke titik akhir ini setelah Amazon SNS menerimanya.

Untuk mengonfigurasi saluran komunikasi sebagai titik akhir untuk suatu topik, berlangganan titik akhir tersebut ke topik tersebut. Untuk memulai, buat [SubscribeRequest](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sns/model/SubscribeRequest.html)objek. Tentukan saluran komunikasi (misalnya, `lambda` atau`email`) sebagai`protocol()`. Atur `endpoint()` ke lokasi keluaran yang relevan (misalnya, ARN Lambda fungsi atau alamat email), lalu atur ARN dari topik yang ingin Anda berlangganan sebagai. `topicArn()` Kirim objek permintaan ke Amazon SNS dengan menggunakan `subscribe()` metode`SnsClient`. Anda dapat menangkap hasil permintaan ini sebagai [SubscribeResponse](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sns/model/SubscribeResponse.html)objek.

Cuplikan kode berikut menunjukkan cara berlangganan alamat email ke suatu topik.

 **Impor** 

```
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.sns.SnsClient;
import software.amazon.awssdk.services.sns.model.SnsException;
import software.amazon.awssdk.services.sns.model.SubscribeRequest;
import software.amazon.awssdk.services.sns.model.SubscribeResponse;
```

 **Kode** 

```
    public static void subEmail(SnsClient snsClient, String topicArn, String email) {

        try {
            SubscribeRequest request = SubscribeRequest.builder()
                .protocol("email")
                .endpoint(email)
                .returnSubscriptionArn(true)
                .topicArn(topicArn)
                .build();

            SubscribeResponse result = snsClient.subscribe(request);
            System.out.println("Subscription ARN: " + result.subscriptionArn() + "\n\n Status is " + result.sdkHttpResponse().statusCode());

        } catch (SnsException e) {
            System.err.println(e.awsErrorDetails().errorMessage());
            System.exit(1);
        }
    }
```

Lihat [contoh lengkapnya](https://github.com/awsdocs/aws-doc-sdk-examples/blob/da520cb4436f8567a90b6f73f77232fd590a50bf/javav2/example_code/sns/src/main/java/com/example/sns/SubscribeEmail.java) di GitHub.

## Publikasikan pesan ke suatu topik
<a name="sns-publish-message-topic"></a>

Setelah Anda memiliki topik dan satu atau beberapa titik akhir yang dikonfigurasi untuk itu, Anda dapat mempublikasikan pesan ke sana. Untuk memulai, buat [PublishRequest](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sns/model/PublishRequest.html)objek. Tentukan `message()` yang akan dikirim, dan ARN dari topik (`topicArn()`) untuk mengirimkannya. Kemudian, kirim objek permintaan ke Amazon SNS dengan menggunakan `publish()` metode`SnsClient`. Anda dapat menangkap hasil permintaan ini sebagai [PublishResponse](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sns/model/PublishResponse.html)objek.

 **Impor** 

```
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.sns.SnsClient;
import software.amazon.awssdk.services.sns.model.PublishRequest;
import software.amazon.awssdk.services.sns.model.PublishResponse;
import software.amazon.awssdk.services.sns.model.SnsException;
```

 **Kode** 

```
    public static void pubTopic(SnsClient snsClient, String message, String topicArn) {

        try {
            PublishRequest request = PublishRequest.builder()
                .message(message)
                .topicArn(topicArn)
                .build();

            PublishResponse result = snsClient.publish(request);
            System.out.println(result.messageId() + " Message sent. Status is " + result.sdkHttpResponse().statusCode());

         } catch (SnsException e) {
            System.err.println(e.awsErrorDetails().errorMessage());
            System.exit(1);
         }
    }
```

Lihat [contoh lengkapnya](https://github.com/awsdocs/aws-doc-sdk-examples/blob/da520cb4436f8567a90b6f73f77232fd590a50bf/javav2/example_code/sns/src/main/java/com/example/sns/PublishTopic.java) di GitHub.

## Berhenti berlangganan titik akhir dari suatu topik
<a name="sns-unsubscribe-endpoint-topic"></a>

Anda dapat menghapus saluran komunikasi yang dikonfigurasi sebagai titik akhir untuk suatu topik. Setelah melakukan itu, topik itu sendiri terus ada dan mendistribusikan pesan ke titik akhir lain yang dikonfigurasi untuk topik itu.

Untuk menghapus saluran komunikasi sebagai titik akhir topik, berhenti berlangganan titik akhir tersebut dari topik tersebut. Untuk memulai, buat [UnsubscribeRequest](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sns/model/UnsubscribeRequest.html)objek dan atur ARN dari topik yang ingin Anda berhenti berlangganan sebagai. `subscriptionArn()` Kemudian kirim objek permintaan ke SNS dengan menggunakan `unsubscribe()` metode. `SnsClient` Anda dapat menangkap hasil permintaan ini sebagai [UnsubscribeResponse](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sns/model/UnsubscribeResponse.html)objek.

 **Impor** 

```
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.sns.SnsClient;
import software.amazon.awssdk.services.sns.model.SnsException;
import software.amazon.awssdk.services.sns.model.UnsubscribeRequest;
import software.amazon.awssdk.services.sns.model.UnsubscribeResponse;
```

 **Kode** 

```
    public static void unSub(SnsClient snsClient, String subscriptionArn) {

        try {
            UnsubscribeRequest request = UnsubscribeRequest.builder()
                .subscriptionArn(subscriptionArn)
                .build();

            UnsubscribeResponse result = snsClient.unsubscribe(request);

            System.out.println("\n\nStatus was " + result.sdkHttpResponse().statusCode()
                + "\n\nSubscription was removed for " + request.subscriptionArn());

        } catch (SnsException e) {
            System.err.println(e.awsErrorDetails().errorMessage());
            System.exit(1);
        }
    }
```

Lihat [contoh lengkapnya](https://github.com/awsdocs/aws-doc-sdk-examples/blob/da520cb4436f8567a90b6f73f77232fd590a50bf/javav2/example_code/sns/src/main/java/com/example/sns/Unsubscribe.java) di GitHub.

## Hapus topik
<a name="sns-delete-topic"></a>

Untuk menghapus Amazon SNS topik, pertama-tama buat [DeleteTopicRequest](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sns/model/DeleteTopicRequest.html)objek dengan ARN dari set topik sebagai `topicArn()` metode di pembuat. Kemudian kirim objek permintaan ke Amazon SNS dengan menggunakan `deleteTopic()` metode`SnsClient`. Anda dapat menangkap hasil permintaan ini sebagai [DeleteTopicResponse](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sns/model/DeleteTopicResponse.html)objek, seperti yang ditunjukkan dalam cuplikan kode berikut.

 **Impor** 

```
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.sns.SnsClient;
import software.amazon.awssdk.services.sns.model.DeleteTopicRequest;
import software.amazon.awssdk.services.sns.model.DeleteTopicResponse;
import software.amazon.awssdk.services.sns.model.SnsException;
```

 **Kode** 

```
    public static void deleteSNSTopic(SnsClient snsClient, String topicArn ) {

        try {
            DeleteTopicRequest request = DeleteTopicRequest.builder()
                .topicArn(topicArn)
                .build();

            DeleteTopicResponse result = snsClient.deleteTopic(request);
            System.out.println("\n\nStatus was " + result.sdkHttpResponse().statusCode());

        } catch (SnsException e) {
            System.err.println(e.awsErrorDetails().errorMessage());
            System.exit(1);
        }
    }
```

Lihat [contoh lengkapnya](https://github.com/awsdocs/aws-doc-sdk-examples/blob/da520cb4436f8567a90b6f73f77232fd590a50bf/javav2/example_code/sns/src/main/java/com/example/sns/DeleteTopic.java) di GitHub.

Untuk informasi selengkapnya, lihat [Panduan Developer Amazon Simple Notification Service](https://docs.aws.amazon.com/sns/latest/dg/).