

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

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

Avec Amazon Simple Notification Service, vous pouvez facilement envoyer des messages de notification en temps réel de vos applications aux abonnés via plusieurs canaux de communication. Cette rubrique décrit comment exécuter certaines des fonctions de base de Amazon SNS.

## Créer une rubrique
<a name="sns-create-topic"></a>

Un **sujet** est un regroupement logique de canaux de communication qui définit les systèmes auxquels envoyer un message, par exemple en diffusant un message AWS Lambda et en envoyant un webhook HTTP. Vous envoyez des messages à Amazon SNS, puis ils sont distribués aux canaux définis dans le sujet. Les messages sont alors disponibles pour les abonnés.

Pour créer un sujet, créez d'abord un [CreateTopicRequest](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sns/model/CreateTopicRequest.html)objet, avec le nom du sujet défini à l'aide de la `name()` méthode du générateur. Envoyez ensuite l'objet de demande à Amazon SNS en utilisant la `createTopic()` méthode du [SnsClient](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sns/SnsClient.html). Vous pouvez capturer le résultat de cette demande sous forme d'[CreateTopicResponse](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sns/model/CreateTopicResponse.html)objet, comme illustré dans l'extrait de code suivant.

 **Importations** 

```
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;
```

 **Code** 

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

Consultez l'[exemple complet](https://github.com/awsdocs/aws-doc-sdk-examples/blob/da520cb4436f8567a90b6f73f77232fd590a50bf/javav2/example_code/sns/src/main/java/com/example/sns/CreateTopic.java) sur GitHub.

## Listez vos Amazon SNS sujets
<a name="sns-crelistate-topics"></a>

Pour récupérer la liste de vos Amazon SNS sujets existants, créez un [ListTopicsRequest](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sns/model/ListTopicsRequest.html)objet. Envoyez ensuite l'objet de demande à Amazon SNS en utilisant la `listTopics()` méthode du`SnsClient`. Vous pouvez capturer le résultat de cette demande sous forme d'[ListTopicsResponse](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sns/model/ListTopicsResponse.html)objet.

L'extrait de code suivant affiche le code d'état HTTP de la demande et une liste des Amazon Resource Names (ARNs) pour vos Amazon SNS sujets.

 **Importations** 

```
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;
```

 **Code** 

```
    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);
        }
    }
```

Consultez l'[exemple complet](https://github.com/awsdocs/aws-doc-sdk-examples/blob/da520cb4436f8567a90b6f73f77232fd590a50bf/javav2/example_code/sns/src/main/java/com/example/sns/ListTopics.java) sur GitHub.

## Abonner un point de terminaison à une rubrique
<a name="sns-subscribe-endpoint-topic"></a>

Après avoir créé une rubrique, vous pouvez configurer les canaux de communication qui deviendront des points de terminaison pour cette rubrique. Les messages sont distribués à ces points de terminaison après les avoir Amazon SNS reçus.

Pour configurer un canal de communication en tant que point de terminaison pour une rubrique, abonnez ce point de terminaison à la rubrique. Pour commencer, créez un [SubscribeRequest](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sns/model/SubscribeRequest.html)objet. Spécifiez le canal de communication (par exemple, `lambda` ou`email`) en tant que`protocol()`. Définissez l'emplacement `endpoint()` de sortie approprié (par exemple, l'ARN d'une Lambda fonction ou une adresse e-mail), puis définissez l'ARN du sujet auquel vous souhaitez vous abonner en tant que`topicArn()`. Envoyez l'objet de demande à Amazon SNS en utilisant la `subscribe()` méthode du`SnsClient`. Vous pouvez capturer le résultat de cette demande sous forme d'[SubscribeResponse](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sns/model/SubscribeResponse.html)objet.

L'extrait de code suivant montre comment abonner une adresse e-mail à une rubrique.

 **Importations** 

```
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;
```

 **Code** 

```
    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);
        }
    }
```

Consultez l'[exemple complet](https://github.com/awsdocs/aws-doc-sdk-examples/blob/da520cb4436f8567a90b6f73f77232fd590a50bf/javav2/example_code/sns/src/main/java/com/example/sns/SubscribeEmail.java) sur GitHub.

## Publier un message dans une rubrique
<a name="sns-publish-message-topic"></a>

Après avoir configuré une rubrique et un ou plusieurs points de terminaison, vous pouvez y publier un message. Pour commencer, créez un [PublishRequest](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sns/model/PublishRequest.html)objet. Spécifiez le `message()` à envoyer et l'ARN de la rubrique (`topicArn()`) à laquelle l'envoyer. Envoyez ensuite l'objet de demande à Amazon SNS en utilisant la `publish()` méthode du`SnsClient`. Vous pouvez capturer le résultat de cette demande sous forme d'[PublishResponse](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sns/model/PublishResponse.html)objet.

 **Importations** 

```
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;
```

 **Code** 

```
    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);
         }
    }
```

Consultez l'[exemple complet](https://github.com/awsdocs/aws-doc-sdk-examples/blob/da520cb4436f8567a90b6f73f77232fd590a50bf/javav2/example_code/sns/src/main/java/com/example/sns/PublishTopic.java) sur GitHub.

## Désabonner un point de terminaison à une rubrique
<a name="sns-unsubscribe-endpoint-topic"></a>

Vous pouvez supprimer les canaux de communication configurés en tant que points de terminaison pour une rubrique. Après cela, la rubrique elle-même continue d'exister et de diffuser des messages à tous les autres points de terminaison configurés pour cette rubrique.

Pour supprimer un canal de communication en tant que point de terminaison pour une rubrique, annulez l’abonnement du point de terminaison à la rubrique. Pour commencer, créez un [UnsubscribeRequest](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sns/model/UnsubscribeRequest.html)objet et définissez l'ARN du sujet dont vous souhaitez vous désabonner comme étant le`subscriptionArn()`. Ensuite, envoyez l'objet de demande à SNS en utilisant la méthode `unsubscribe()` du `SnsClient`. Vous pouvez capturer le résultat de cette demande sous forme d'[UnsubscribeResponse](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sns/model/UnsubscribeResponse.html)objet.

 **Importations** 

```
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;
```

 **Code** 

```
    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);
        }
    }
```

Consultez l'[exemple complet](https://github.com/awsdocs/aws-doc-sdk-examples/blob/da520cb4436f8567a90b6f73f77232fd590a50bf/javav2/example_code/sns/src/main/java/com/example/sns/Unsubscribe.java) sur GitHub.

## Supprimer une rubrique
<a name="sns-delete-topic"></a>

Pour supprimer un Amazon SNS sujet, créez d'abord un [DeleteTopicRequest](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sns/model/DeleteTopicRequest.html)objet avec l'ARN du sujet défini comme `topicArn()` méthode dans le générateur. Envoyez ensuite l'objet de demande à Amazon SNS en utilisant la `deleteTopic()` méthode du`SnsClient`. Vous pouvez capturer le résultat de cette demande sous forme d'[DeleteTopicResponse](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sns/model/DeleteTopicResponse.html)objet, comme illustré dans l'extrait de code suivant.

 **Importations** 

```
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;
```

 **Code** 

```
    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);
        }
    }
```

Consultez l'[exemple complet](https://github.com/awsdocs/aws-doc-sdk-examples/blob/da520cb4436f8567a90b6f73f77232fd590a50bf/javav2/example_code/sns/src/main/java/com/example/sns/DeleteTopic.java) sur GitHub.

Pour plus d’informations, consultez le [Manuel du développeur Amazon Simple Notification Service](https://docs.aws.amazon.com/sns/latest/dg/).