

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à.

# Configurazione di una coda Amazon SNS dead-letter per una sottoscrizione
<a name="sns-configure-dead-letter-queue"></a>

Una coda DLQ è una coda Amazon SQS a cui un abbonamento Amazon SNS può mirare per i messaggi che non possono essere recapitati correttamente agli abbonati. I messaggi che non possono essere recapitati a causa di errori client o errori server vengono mantenuti nella coda DLQ per ulteriori analisi o elaborazione. Per ulteriori informazioni, consultare [Code di lettere non ricevute di Amazon SNS](sns-dead-letter-queues.md) e [Tentativi di consegna dei messaggi di Amazon SNS](sns-message-delivery-retries.md).

Questa pagina mostra come utilizzare Console di gestione AWS, un AWS SDK AWS CLI, e configurare una coda di lettere non scritte CloudFormation per un abbonamento Amazon SNS.

**Nota**  
Per un [Argomento FIFO](sns-fifo-topics.md), puoi utilizzare una coda di Amazon SQS come una coda DLQ per la sottoscrizione ad Amazon SNS. Le sottoscrizioni agli argomenti FIFO utilizzano le code FIFO e le sottoscrizioni agli argomenti standard utilizzano le code standard.

## Prerequisiti
<a name="dead-letter-queue-prerequisites"></a>

Prima di configurare una coda DLQ, completare i seguenti prerequisiti:

1. [Creare un argomento Amazon SNS](sns-create-topic.md), denominato `MyTopic`.

1. [Crear una coda Amazon SQS](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-create-queue.html) denominata `MyEndpoint`, da utilizzare come endpoint per l'abbonamento Amazon SNS.

1. (Salta per CloudFormation) [Iscriviti alla coda per accedere all'argomento](sns-sqs-as-subscriber.md).

1. [Creare un'altra coda Amazon SQS](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-create-queue.html) denominata `MyDeadLetterQueue`, da utilizzare come coda dead-letter per la sottoscrizione Amazon SNS.

1. Per concedere l'accesso Amazon SNS principale all'azione Amazon SQS API, impostare la policy della coda seguente per `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"
           }
         }
       }
     ]
   }
   ```

------

## Per configurare una coda di lettere non scritte per un abbonamento Amazon SNS utilizzando Console di gestione AWS
<a name="configure-dead-letter-queue-aws-console"></a>

Prima di iniziare questo tutorial, completare i [prerequisiti](#dead-letter-queue-prerequisites) descritti di seguito.

1. Accedere alla [console Amazon SQS](https://console.aws.amazon.com/sqs/).

1. [Creare una coda Amazon SQS](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-create-queue.html) o utilizzare una coda esistente e prendere nota dell'ARN della coda nella scheda **Details (Dettagli)** della coda, ad esempio:

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

1. Accedi alla [console Amazon SNS](https://console.aws.amazon.com/sns/home).

1. Nel riquadro di navigazione, scegli **Sottoscrizioni**.

1. Sulla pagina **Subscriptions (Abbonamenti)**, selezionare una sottoscrizione esistente, quindi scegliere **Edit (Modifica)**.

1. Nella *1234a567-bc89-012d-3e45-6fg7h890123i* pagina **Modifica**, espandi la sezione **Redrive policy (dead-letter queue)**, quindi procedi come segue:

   1. Scegli **Enabled** (Abilitato).

   1. Specificare l'ARN di una coda Amazon SQS.

1. Seleziona **Save changes** (Salva modifiche).

   La sottoscrizione è configurata per l'utilizzo di una coda dead-letter.

## Per configurare una coda di lettere non scritte per un abbonamento Amazon SNS utilizzando un SDK AWS
<a name="configure-dead-letter-queue-aws-sdk"></a>

Prima di eseguire questo esempio, completare i [prerequisiti](#dead-letter-queue-prerequisites).

Per utilizzare un AWS SDK, devi configurarlo con le tue credenziali. *Per ulteriori informazioni, consulta [I file di configurazione e credenziali condivisi nella and](https://docs.aws.amazon.com/sdkref/latest/guide/creds-config-files.html) Tools Reference AWS SDKs Guide.*

Il seguente esempio di codice mostra come utilizzare. `SetSubscriptionAttributesRedrivePolicy`

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

**SDK per Java 1.x**  
 C'è altro da fare GitHub. Trova l'esempio completo e scopri di più sulla configurazione e l'esecuzione nel [Repository di esempi di codice 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);
```

------

## Per configurare una coda di lettere non scritte per un abbonamento Amazon SNS utilizzando AWS CLI
<a name="configure-dead-letter-queue-aws-cli"></a>

Prima di iniziare questo tutorial, completare i [prerequisiti](#dead-letter-queue-prerequisites) descritti di seguito.

1. Istalla e configura la AWS CLI. Per ulteriori informazioni, consulta la [Guida per l'utente *AWS Command Line Interface *](https://docs.aws.amazon.com/cli/latest/userguide/).

1. Utilizza il seguente comando.

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

## Per configurare una coda di lettere non scritte per un abbonamento Amazon SNS utilizzando CloudFormation
<a name="configure-dead-letter-queue-aws-cloudformation"></a>

Prima di iniziare questo tutorial, completare i [prerequisiti](#dead-letter-queue-prerequisites).

1. Copia il seguente codice JSON in un file denominato `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. Accedi alla [console CloudFormation](https://console.aws.amazon.com/cloudformation/).

1. Nella pagina **Select Template (Seleziona modello)** scegliere **Upload a template to Amazon S3 (Carica un modello in Amazon S3)**, selezionare il file `MyDeadLetterQueue.json`, quindi scegliere **Next (Avanti)**. 

1. Nella pagina **Specify Details (Specifica dettagli)**, digitare `MyDeadLetterQueue` per **Stack Name (Nome stack)**, quindi scegliere **Next (Avanti)**. 

1. Nella pagina **Opzioni**, scegli **Next** (Avanti).

1. Nella pagina **Revisione** scegli **Create** (Crea).

   CloudFormation **inizia a creare lo `MyDeadLetterQueue` stack e visualizza lo stato CREATE\$1IN\$1PROGRESS.** **Quando il processo è completo, visualizza lo stato CREATE\$1COMPLETE. CloudFormation **