

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Gestione degli argomenti in Amazon SNS con la versione 3 AWS SDK per PHP
<a name="sns-examples-managing-topics"></a>

Per inviare notifiche ad Amazon Simple Queue Service (Amazon SQS) HTTP/HTTPS URLs, invia un'e-mail AWS Lambda o AWS SMS, devi prima creare un argomento che gestisca la consegna dei messaggi a tutti gli abbonati di quell'argomento.

In termini di modello di progettazione dell'osservatore, un argomento è come il soggetto. Dopo aver creato un argomento, è possibile aggiungere sottoscrittori che vengono automaticamente avvisati quando viene pubblicato un messaggio relativo all'argomento.

Scopri di più sulla sottoscrizione agli argomenti in [Gestione degli abbonamenti in Amazon AWS SDK per PHP SNS](sns-examples-subscribing-unsubscribing-topics.md) con la versione 3.

Gli esempi seguenti mostrano come:
+ Crea un argomento da utilizzare per la pubblicazione delle notifiche. [CreateTopic](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-sns-2010-03-31.html#createtopic)
+ Restituisce un elenco degli argomenti del richiedente utilizzando [ListTopics](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-sns-2010-03-31.html#listtopic).
+ Elimina un argomento e tutte le relative sottoscrizioni utilizzando. [DeleteTopic](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-sns-2010-03-31.html#deletetopic)
+ Restituisce tutte le proprietà di un argomento utilizzando [GetTopicAttributes](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-sns-2010-03-31.html#gettopicattributes).
+ Consenti al proprietario di un argomento di impostare un attributo dell'argomento su un nuovo valore utilizzando [SetTopicAttributes](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-sns-2010-03-31.html#settopicattributes).

Per ulteriori informazioni sull'uso di Amazon SNS, consulta Amazon SNS [Topic Attributes for Message Delivery](https://docs.aws.amazon.com/sns/latest/dg/sns-topic-attributes.html) Status.

Tutto il codice di esempio per AWS SDK per PHP è disponibile [qui](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/php/example_code). GitHub

## Credenziali
<a name="examplecredentials"></a>

Prima di eseguire il codice di esempio, configurate AWS le vostre credenziali, come descritto in[Autenticazione con l' AWS utilizzo AWS SDK per PHP della versione 3](credentials.md). Quindi importate il file AWS SDK per PHP, come descritto in[Installazione della AWS SDK per PHP versione 3](getting-started_installation.md).

## Creazione di un argomento
<a name="create-a-topic"></a>

Per creare un argomento, usa l'[CreateTopic](https://docs.aws.amazon.com/sns/latest/api/API_CreateTopic.html)operazione.

Il nome di ogni argomento nel tuo Account AWS deve essere unico.

 **Importazioni** 

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

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

 **Codice di esempio** 

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

## Elenca i tuoi argomenti
<a name="list-your-topics"></a>

Per elencare fino a 100 argomenti esistenti nella AWS regione corrente, usa l'[ListTopics](https://docs.aws.amazon.com/sns/latest/api/API_ListTopics.html)operazione.

 **Importazioni** 

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

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

 **Codice di esempio** 

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

## Eliminazione di un argomento
<a name="delete-a-topic"></a>

Per rimuovere un argomento esistente e tutte le relative sottoscrizioni, utilizzate l'[DeleteTopic](https://docs.aws.amazon.com/sns/latest/api/API_DeleteTopic.html)operazione.

Tutti i messaggi non recapitati ancora agli abbonati verranno eliminati.

 **Importazioni** 

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

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

 **Codice di esempio** 

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

## Ottieni gli attributi dell'argomento
<a name="get-topic-attributes"></a>

Per recuperare le proprietà di un singolo argomento esistente, usa l'[GetTopicAttributes](https://docs.aws.amazon.com/sns/latest/api/API_GetTopicAttributes.html)operazione.

 **Importazioni** 

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

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

 **Codice di esempio** 

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

## Impostazione degli attributi degli argomenti
<a name="set-topic-attributes"></a>

Per aggiornare le proprietà di un singolo argomento esistente, utilizzate l'[SetTopicAttributes](https://docs.aws.amazon.com/sns/latest/api/API_SetTopicAttributes.html)operazione.

È possibile impostare solo gli attributi `Policy`, `DisplayName` e `DeliveryPolicy`.

 **Importazioni** 

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

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

 **Codice di esempio** 

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