

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.

# Gestion des sujets dans Amazon SNS avec la version 3 AWS SDK pour PHP
<a name="sns-examples-managing-topics"></a>

Pour envoyer des notifications à Amazon Simple Queue Service (Amazon SQS) HTTP/HTTPS URLs, par e-mail AWS Lambda ou par e-mail AWS SMS, vous devez d'abord créer une rubrique qui gère la distribution des messages à tous les abonnés de cette rubrique.

En termes de conception du modèle d’observateur, une rubrique correspond à l’objet. Une fois qu’une rubrique est créée, vous ajoutez des abonnés qui reçoivent automatiquement une notification lorsqu’un message est publié dans cette rubrique.

Pour en savoir plus sur l'abonnement à des rubriques, consultez [la section Gestion des abonnements dans Amazon SNS AWS SDK pour PHP avec](sns-examples-subscribing-unsubscribing-topics.md) la version 3.

Les exemples suivants montrent comment :
+ Créez une rubrique pour publier des notifications d'utilisation [CreateTopic](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-sns-2010-03-31.html#createtopic).
+ Renvoie une liste des sujets du demandeur à l'aide [ListTopics](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-sns-2010-03-31.html#listtopic)de.
+ Supprimez un sujet et tous ses abonnements à l'aide de [DeleteTopic](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-sns-2010-03-31.html#deletetopic).
+ Renvoie toutes les propriétés d'une rubrique en utilisant [GetTopicAttributes](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-sns-2010-03-31.html#gettopicattributes).
+ Autoriser le propriétaire d'une rubrique à attribuer une nouvelle valeur à un attribut de la rubrique en utilisant [SetTopicAttributes](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-sns-2010-03-31.html#settopicattributes).

Pour plus d'informations sur l'utilisation d'Amazon SNS, consultez la [rubrique Attributs d'Amazon SNS relatifs à l'état de livraison des](https://docs.aws.amazon.com/sns/latest/dg/sns-topic-attributes.html) messages.

Tous les exemples de code pour le AWS SDK pour PHP sont [disponibles ici GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/php/example_code).

## Informations d’identification
<a name="examplecredentials"></a>

Avant d'exécuter l'exemple de code, configurez vos AWS informations d'identification, comme décrit dans[Authentification à l' AWS aide de AWS SDK pour PHP la version 3](credentials.md). Importez ensuite le AWS SDK pour PHP, comme décrit dans[Installation de la AWS SDK pour PHP version 3](getting-started_installation.md).

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

Pour créer un sujet, utilisez l'[CreateTopic](https://docs.aws.amazon.com/sns/latest/api/API_CreateTopic.html)opération.

Chaque nom de rubrique que vous Compte AWS trouverez doit être unique.

 **Importations** 

```
require 'vendor/autoload.php';

use Aws\Exception\AwsException;
use Aws\Sns\SnsClient;
```

 **Exemple de code** 

```
$SnSclient = new SnsClient([
    'profile' => 'default',
    'region' => 'us-east-1',
    'version' => '2010-03-31'
]);

$topicname = 'myTopic';

try {
    $result = $SnSclient->createTopic([
        'Name' => $topicname,
    ]);
    var_dump($result);
} catch (AwsException $e) {
    // output error message if fails
    error_log($e->getMessage());
}
```

## Listez vos sujets
<a name="list-your-topics"></a>

Pour répertorier jusqu'à 100 sujets existants dans la AWS région actuelle, utilisez l'[ListTopics](https://docs.aws.amazon.com/sns/latest/api/API_ListTopics.html)opération.

 **Importations** 

```
require 'vendor/autoload.php';

use Aws\Exception\AwsException;
use Aws\Sns\SnsClient;
```

 **Exemple de code** 

```
$SnSclient = new SnsClient([
    'profile' => 'default',
    'region' => 'us-east-1',
    'version' => '2010-03-31'
]);

try {
    $result = $SnSclient->listTopics();
    var_dump($result);
} catch (AwsException $e) {
    // output error message if fails
    error_log($e->getMessage());
}
```

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

Pour supprimer un sujet existant et tous ses abonnements, utilisez l'[DeleteTopic](https://docs.aws.amazon.com/sns/latest/api/API_DeleteTopic.html)opération.

Les messages qui n’ont pas encore été livrés aux abonnés seront également supprimés.

 **Importations** 

```
require 'vendor/autoload.php';

use Aws\Exception\AwsException;
use Aws\Sns\SnsClient;
```

 **Exemple de code** 

```
$SnSclient = new SnsClient([
    'profile' => 'default',
    'region' => 'us-east-1',
    'version' => '2010-03-31'
]);

$topic = 'arn:aws:sns:us-east-1:111122223333:MyTopic';

try {
    $result = $SnSclient->deleteTopic([
        'TopicArn' => $topic,
    ]);
    var_dump($result);
} catch (AwsException $e) {
    // output error message if fails
    error_log($e->getMessage());
}
```

## Obtenir les attributs des rubriques
<a name="get-topic-attributes"></a>

Pour récupérer les propriétés d'une seule rubrique existante, utilisez l'[GetTopicAttributes](https://docs.aws.amazon.com/sns/latest/api/API_GetTopicAttributes.html)opération.

 **Importations** 

```
require 'vendor/autoload.php';

use Aws\Exception\AwsException;
use Aws\Sns\SnsClient;
```

 **Exemple de code** 

```
$SnSclient = new SnsClient([
    'profile' => 'default',
    'region' => 'us-east-1',
    'version' => '2010-03-31'
]);

$topic = 'arn:aws:sns:us-east-1:111122223333:MyTopic';

try {
    $result = $SnSclient->getTopicAttributes([
        'TopicArn' => $topic,
    ]);
    var_dump($result);
} catch (AwsException $e) {
    // output error message if fails
    error_log($e->getMessage());
}
```

## Définir les attributs de la rubrique
<a name="set-topic-attributes"></a>

Pour mettre à jour les propriétés d'une seule rubrique existante, utilisez l'[SetTopicAttributes](https://docs.aws.amazon.com/sns/latest/api/API_SetTopicAttributes.html)opération.

Vous ne pouvez définir que les attributs `Policy`, `DisplayName` et `DeliveryPolicy`.

 **Importations** 

```
require 'vendor/autoload.php';

use Aws\Exception\AwsException;
use Aws\Sns\SnsClient;
```

 **Exemple de code** 

```
$SnSclient = new SnsClient([
    'profile' => 'default',
    'region' => 'us-east-1',
    'version' => '2010-03-31'
]);
$attribute = 'Policy | DisplayName | DeliveryPolicy';
$value = 'First Topic';
$topic = 'arn:aws:sns:us-east-1:111122223333:MyTopic';

try {
    $result = $SnSclient->setTopicAttributes([
        'AttributeName' => $attribute,
        'AttributeValue' => $value,
        'TopicArn' => $topic,
    ]);
    var_dump($result);
} catch (AwsException $e) {
    // output error message if fails
    error_log($e->getMessage());
}
```