

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

# Analisi dei formati di messaggi Amazon SNS
<a name="sns-message-and-json-formats"></a>

Quando Amazon SNS invia messaggi agli HTTP/HTTPS endpoint, questi contengono sia intestazioni HTTP che un corpo del messaggio JSON. Questi messaggi seguono un formato strutturato che include metadati come il tipo di messaggio, l'ARN dell'argomento, i timestamp e le firme digitali. Analizzando correttamente i messaggi di Amazon SNS, puoi determinare se un messaggio è una conferma di iscrizione, una notifica o una conferma di annullamento dell'iscrizione, estrarre i dati pertinenti e verificare l'autenticità utilizzando la convalida della firma.

# Intestazioni HTTP/HTTPS
<a name="http-header"></a>

Quando Amazon SNS invia un messaggio di conferma dell'abbonamento, notifica o annullamento dell'iscrizione agli HTTP/HTTPS endpoint, invia un messaggio POST con una serie di valori di intestazione specifici di Amazon SNS. Puoi utilizzare i valori d'intestazione per attività quali l’identificazione del tipo di messaggio senza dover analizzare il corpo del messaggio JSON per leggere il valore `Type`. Per impostazione predefinita, Amazon SNS invia tutte le notifiche agli endpoint HTTP/S con `Content-Type` impostato su `text/plain; charset=UTF-8`. Per scegliere un valore `Content-Type` diverso da text/plain (predefinito), consulta in. `headerContentType` [Creazione di una politica di consegna HTTP/S](sns-message-delivery-retries.md#creating-delivery-policy)

**`x-amz-sns-message-type`**  
Il tipo di messaggio. I valori possibili sono `SubscriptionConfirmation`, `Notification` e `UnsubscribeConfirmation`.

**`x-amz-sns-message-id`**  
Un identificatore unico universale (UUID), univoco per ogni messaggio pubblicato. Per una notifica che Amazon SNS reinvia durante un nuovo tentativo, viene utilizzato l'ID messaggio originale.

**`x-amz-sns-topic-arn`**  
L'Amazon Resource Name (ARN) per l'argomento in cui questo messaggio è stato pubblicato.

**`x-amz-sns-subscription-arn`**  
L'ARN per la sottoscrizione a questo endpoint.

L'intestazione HTTP POST seguente è un esempio di intestazione per un messaggio `Notification` inviato a un endpoint HTTP.

```
POST / HTTP/1.1
x-amz-sns-message-type: Notification
x-amz-sns-message-id: 165545c9-2a5c-472c-8df2-7ff2be2b3b1b
x-amz-sns-topic-arn: arn:aws:sns:us-west-2:123456789012:MyTopic
x-amz-sns-subscription-arn: arn:aws:sns:us-west-2:123456789012:MyTopic:2bcfbf39-05c3-41de-beaa-fcfcc21c8f55
Content-Length: 1336
Content-Type: text/plain; charset=UTF-8
Host: myhost.example.com
Connection: Keep-Alive
User-Agent: Amazon Simple Notification Service Agent
```

# Conferma sottoscrizione HTTP/HTTPS in formato JSON
<a name="http-subscription-confirmation-json"></a>

Dopo aver sottoscritto un HTTP/HTTPS endpoint, Amazon SNS invia un messaggio di conferma dell'iscrizione all' HTTP/HTTPS endpoint. Tale messaggio contiene un valore `SubscribeURL` da selezionare per confermare la sottoscrizione. In alternativa, puoi utilizzare il valore `Token` con [https://docs.aws.amazon.com/sns/latest/api/API_ConfirmSubscription.html](https://docs.aws.amazon.com/sns/latest/api/API_ConfirmSubscription.html). 

**Nota**  
Amazon SNS non invierà notifiche a questo endpoint fino alla conferma della sottoscrizione

Il messaggio di conferma della sottoscrizione è un messaggio POST con un corpo che contiene un documento JSON con le seguenti coppie nome/valore.

**`Type`**  
Il tipo di messaggio. Per confermare la sottoscrizione, il tipo è `SubscriptionConfirmation`.

**`MessageId`**  
Un identificatore unico universale (UUID), univoco per ogni messaggio pubblicato. Per un messaggio che Amazon SNS invia di nuovo durante un nuovo tentativo, viene utilizzato l'ID messaggio originale.

**`Token`**  
Un valore che puoi utilizzare con l'operazione [https://docs.aws.amazon.com/sns/latest/api/API_ConfirmSubscription.html](https://docs.aws.amazon.com/sns/latest/api/API_ConfirmSubscription.html) per confermare la sottoscrizione. In alternativa, puoi selezionare `SubscribeURL`.

**`TopicArn`**  
L'Amazon Resource Name (ARN) per l'argomento a cui questo endpoint è sottoscritto.

**`Message`**  
Una stringa che descrive il messaggio. Per una conferma di sottoscrizione, la stringa deve avere il seguente aspetto:  

```
You have chosen to subscribe to the topic arn:aws:sns:us-east-2:123456789012:MyTopic.\nTo confirm the subscription, visit the SubscribeURL included in this message.
```

**`SubscribeURL`**  
L'URL da selezionare per confermare la sottoscrizione. In alternativa, puoi utilizzare il `Token` con l'operazione [https://docs.aws.amazon.com/sns/latest/api/API_ConfirmSubscription.html](https://docs.aws.amazon.com/sns/latest/api/API_ConfirmSubscription.html) per confermare la sottoscrizione.

**`Timestamp`**  
L'ora (GMT) in cui è stata inviata la conferma della sottoscrizione.

**`SignatureVersion`**  
La versione della firma Amazon SNS utilizzata.  
+ Se `SignatureVersion` è **1**, `Signature` è una firma `SHA1withRSA` con codifica Base64 dei valori `Message`, `MessageId`, `Type`, `Timestamp` e `TopicArn`. 
+ Se `SignatureVersion` è **2**, `Signature` è una firma `SHA256withRSA` con codifica Base64 dei valori `Message`, `MessageId`, `Type`, `Timestamp` e `TopicArn`.

**`Signature`**  
Firma `SHA1withRSA` o `SHA256withRSA` con codifica Base64 dei valori `Message`, `MessageId``Type`, `Timestamp` e `TopicArn`.

**`SigningCertURL`**  
L'URL per il certificato utilizzato per firmare il messaggio.

Il seguente messaggio HTTP POST è un esempio di messaggio `SubscriptionConfirmation` inviato a un endpoint HTTP.

```
POST / HTTP/1.1
x-amz-sns-message-type: SubscriptionConfirmation
x-amz-sns-message-id: 165545c9-2a5c-472c-8df2-7ff2be2b3b1b
x-amz-sns-topic-arn: arn:aws:sns:us-west-2:123456789012:MyTopic
Content-Length: 1336
Content-Type: text/plain; charset=UTF-8
Host: myhost.example.com
Connection: Keep-Alive
User-Agent: Amazon Simple Notification Service Agent

{
  "Type" : "SubscriptionConfirmation",
  "MessageId" : "165545c9-2a5c-472c-8df2-7ff2be2b3b1b",
  "Token" : "2336412f37...",
  "TopicArn" : "arn:aws:sns:us-west-2:123456789012:MyTopic",
  "Message" : "You have chosen to subscribe to the topic arn:aws:sns:us-west-2:123456789012:MyTopic.\nTo confirm the subscription, visit the SubscribeURL included in this message.",
  "SubscribeURL" : "https://sns.us-west-2.amazonaws.com/?Action=ConfirmSubscription&TopicArn=arn:aws:sns:us-west-2:123456789012:MyTopic&Token=2336412f37...",
  "Timestamp" : "2012-04-26T20:45:04.751Z",
  "SignatureVersion" : "1",
  "Signature" : "EXAMPLEpH+DcEwjAPg8O9mY8dReBSwksfg2S7WKQcikcNKWLQjwu6A4VbeS0QHVCkhRS7fUQvi2egU3N858fiTDN6bkkOxYDVrY0Ad8L10Hs3zH81mtnPk5uvvolIC1CXGu43obcgFxeL3khZl8IKvO61GWB6jI9b5+gLPoBc1Q=",
  "SigningCertURL" : "https://sns.us-west-2.amazonaws.com/SimpleNotificationService-f3ecfb7224c7233fe7bb5f59f96de52f.pem"
}
```

# Notifica HTTP/HTTPS in formato JSON
<a name="http-notification-json"></a>

Quando Amazon SNS invia una notifica a un endpoint HTTP o HTTPS sottoscritto, il corpo del messaggio POST inviato all'endpoint contiene un documento JSON con le seguenti coppie nome/valore.

**`Type`**  
Il tipo di messaggio. Per una notifica, il tipo è `Notification`.

**`MessageId`**  
Un identificatore unico universale (UUID), univoco per ogni messaggio pubblicato. Per una notifica che Amazon SNS reinvia durante un nuovo tentativo, viene utilizzato l'ID messaggio originale.

**`TopicArn`**  
L'Amazon Resource Name (ARN) per l'argomento in cui questo messaggio è stato pubblicato.

**`Subject`**  
Il parametro `Subject` specificato quando la notifica è stata pubblicata nell'argomento.  
Si tratta di un parametro facoltativo. Se non è stato specificato alcun `Subject`, questa coppia nome/valore non appare nel documento JSON.

**`Message`**  
Il valore `Message` specificato nel momento in cui la notifica è stata pubblicata nell'argomento.

**`Timestamp`**  
L'ora (GMT) di pubblicazione della notifica.

**`SignatureVersion`**  
La versione della firma Amazon SNS utilizzata.  
+ Se `SignatureVersion` è **1**, `Signature` è una firma `SHA1withRSA` con codifica Base64 dei valori `Message`, `MessageId`, `Subject` (se presente), `Type`, `Timestamp` e `TopicArn`.
+ Se `SignatureVersion` è **2**, `Signature` è una firma `SHA256withRSA` con codifica Base64 dei valori `Message`, `MessageId`, `Subject` (se presente), `Type`, `Timestamp` e `TopicArn`.

**`Signature`**  
Firma `SHA1withRSA` o `SHA256withRSA` con codifica Base64 dei valori `Message`, `MessageId``Subject` (se presente), `Type`, `Timestamp` e `TopicArn`.

**`SigningCertURL`**  
L'URL per il certificato utilizzato per firmare il messaggio.

**`UnsubscribeURL`**  
Un URL che puoi utilizzare per annullare la sottoscrizione dell'endpoint da questo argomento. Se visiti questo URL, Amazon SNS annulla la sottoscrizione all'endpoint e interrompe l'invio di notifiche a esso.

Il seguente messaggio HTTP POST è un esempio di messaggio `Notification` inviato a un endpoint HTTP.

```
POST / HTTP/1.1
x-amz-sns-message-type: Notification
x-amz-sns-message-id: 22b80b92-fdea-4c2c-8f9d-bdfb0c7bf324
x-amz-sns-topic-arn: arn:aws:sns:us-west-2:123456789012:MyTopic
x-amz-sns-subscription-arn: arn:aws:sns:us-west-2:123456789012:MyTopic:c9135db0-26c4-47ec-8998-413945fb5a96
Content-Length: 773
Content-Type: text/plain; charset=UTF-8
Host: myhost.example.com
Connection: Keep-Alive
User-Agent: Amazon Simple Notification Service Agent

{
  "Type" : "Notification",
  "MessageId" : "22b80b92-fdea-4c2c-8f9d-bdfb0c7bf324",
  "TopicArn" : "arn:aws:sns:us-west-2:123456789012:MyTopic",
  "Subject" : "My First Message",
  "Message" : "Hello world!",
  "Timestamp" : "2012-05-02T00:54:06.655Z",
  "SignatureVersion" : "1",
  "Signature" : "EXAMPLEw6JRN...",
  "SigningCertURL" : "https://sns.us-west-2.amazonaws.com/SimpleNotificationService-f3ecfb7224c7233fe7bb5f59f96de52f.pem",
  "UnsubscribeURL" : "https://sns.us-west-2.amazonaws.com/?Action=Unsubscribe&SubscriptionArn=arn:aws:sns:us-west-2:123456789012:MyTopic:c9135db0-26c4-47ec-8998-413945fb5a96"
  }
```

# Conferma annullamento sottoscrizione HTTP/HTTPS in formato JSON
<a name="http-unsubscribe-confirmation-json"></a>

Dopo l'annullamento dell'iscrizione a un HTTP/HTTPS endpoint da un argomento, Amazon SNS invia un messaggio di conferma dell'annullamento dell'iscrizione all'endpoint.

Il messaggio di conferma dell'annullamento della sottoscrizione è un messaggio POST con un corpo che contiene un documento JSON con le seguenti coppie nome/valore.

**`Type`**  
Il tipo di messaggio. Per confermare l'annullamento della sottoscrizione, il tipo è `UnsubscribeConfirmation`.

**`MessageId`**  
Un identificatore unico universale (UUID), univoco per ogni messaggio pubblicato. Per un messaggio che Amazon SNS invia di nuovo durante un nuovo tentativo, viene utilizzato l'ID messaggio originale.

**`Token`**  
Un valore che puoi utilizzare con l'operazione [https://docs.aws.amazon.com/sns/latest/api/API_ConfirmSubscription.html](https://docs.aws.amazon.com/sns/latest/api/API_ConfirmSubscription.html) per confermare nuovamente la sottoscrizione. In alternativa, puoi selezionare `SubscribeURL`.

**`TopicArn`**  
L'Amazon Resource Name (ARN) per l'argomento da cui è stato effettuato l'annullamento della sottoscrizione di questo endpoint.

**`Message`**  
Una stringa che descrive il messaggio. La stringa per la conferma di annullamento della sottoscrizione ha il seguente aspetto:  

```
You have chosen to deactivate subscription arn:aws:sns:us-east-2:123456789012:MyTopic:2bcfbf39-05c3-41de-beaa-fcfcc21c8f55.\nTo cancel this operation and restore the subscription, visit the SubscribeURL included in this message.
```

**`SubscribeURL`**  
L'URL da selezionare per confermare nuovamente la sottoscrizione. In alternativa, puoi utilizzare il `Token` con l'operazione [https://docs.aws.amazon.com/sns/latest/api/API_ConfirmSubscription.html](https://docs.aws.amazon.com/sns/latest/api/API_ConfirmSubscription.html) per confermare nuovamente la sottoscrizione.

**`Timestamp`**  
L'ora (GMT) in cui è stata inviata la conferma di annullamento della sottoscrizione.

**`SignatureVersion`**  
La versione della firma Amazon SNS utilizzata.  
+ Se `SignatureVersion` è **1**, `Signature` è una firma `SHA1withRSA` con codifica Base64 dei valori `Message`, `MessageId`, `Type`, `Timestamp` e `TopicArn`.
+ Se `SignatureVersion` è **2**, `Signature` è una firma `SHA256withRSA` con codifica Base64 dei valori `Message`, `MessageId`, `Type`, `Timestamp` e `TopicArn`.

**`Signature`**  
Firma `SHA1withRSA` o `SHA256withRSA` con codifica Base64 dei valori `Message`, `MessageId``Type`, `Timestamp` e `TopicArn`.

**`SigningCertURL`**  
L'URL per il certificato utilizzato per firmare il messaggio.

Il seguente messaggio HTTP POST è un esempio di messaggio `UnsubscribeConfirmation` inviato a un endpoint HTTP.

```
POST / HTTP/1.1
x-amz-sns-message-type: UnsubscribeConfirmation
x-amz-sns-message-id: 47138184-6831-46b8-8f7c-afc488602d7d
x-amz-sns-topic-arn: arn:aws:sns:us-west-2:123456789012:MyTopic
x-amz-sns-subscription-arn: arn:aws:sns:us-west-2:123456789012:MyTopic:2bcfbf39-05c3-41de-beaa-fcfcc21c8f55
Content-Length: 1399
Content-Type: text/plain; charset=UTF-8
Host: myhost.example.com
Connection: Keep-Alive
User-Agent: Amazon Simple Notification Service Agent

{
  "Type" : "UnsubscribeConfirmation",
  "MessageId" : "47138184-6831-46b8-8f7c-afc488602d7d",
  "Token" : "2336412f37...",
  "TopicArn" : "arn:aws:sns:us-west-2:123456789012:MyTopic",
  "Message" : "You have chosen to deactivate subscription arn:aws:sns:us-west-2:123456789012:MyTopic:2bcfbf39-05c3-41de-beaa-fcfcc21c8f55.\nTo cancel this operation and restore the subscription, visit the SubscribeURL included in this message.",
  "SubscribeURL" : "https://sns.us-west-2.amazonaws.com/?Action=ConfirmSubscription&TopicArn=arn:aws:sns:us-west-2:123456789012:MyTopic&Token=2336412f37fb6...",
  "Timestamp" : "2012-04-26T20:06:41.581Z",
  "SignatureVersion" : "1",
  "Signature" : "EXAMPLEHXgJm...",
  "SigningCertURL" : "https://sns.us-west-2.amazonaws.com/SimpleNotificationService-f3ecfb7224c7233fe7bb5f59f96de52f.pem"
}
```

# SetSubscriptionAttributes politica di consegna (formato JSON)
<a name="set-sub-attributes-delivery-policy-json"></a>

Se invii una richiesta all'operazione `SetSubscriptionAttributes` e imposti il parametro `AttributeName` su un valore di `DeliveryPolicy`, il valore del parametro `AttributeValue` deve essere un oggetto JSON valido. Per esempio, il caso seguente imposta la policy di consegna su 5 tentativi totali.

```
http://sns.us-east-2.amazonaws.com/
?Action=SetSubscriptionAttributes
&SubscriptionArn=arn%3Aaws%3Asns%3Aus-east-2%3A123456789012%3AMy-Topic%3A80289ba6-0fd4-4079-afb4-ce8c8260f0ca
&AttributeName=DeliveryPolicy
&AttributeValue={"healthyRetryPolicy":{"numRetries":5}}
...
```

Utilizza il seguente formato JSON per il valore del parametro `AttributeValue`.

```
{
    "healthyRetryPolicy" : {
        "minDelayTarget" :  int,
        "maxDelayTarget" : int,
        "numRetries" : int,
        "numMaxDelayRetries" : int,
        "backoffFunction" : "linear|arithmetic|geometric|exponential"
    },
    "throttlePolicy" : {
        "maxReceivesPerSecond" : int
    },
    "requestPolicy" : {
        "headerContentType" : "text/plain | application/json | application/xml"
    }
}
```

Per ulteriori informazioni sull'`SetSubscriptionAttribute`azione, consulta *Amazon Simple Notification Service API Reference*. [SetSubscriptionAttributes](https://docs.aws.amazon.com/sns/latest/api/API_SetSubscriptionAttributes.html) Per ulteriori informazioni sulle intestazioni dei tipi di contenuto HTTP supportate, consultare [Creazione di una politica di consegna HTTP/S](sns-message-delivery-retries.md#creating-delivery-policy).

# SetTopicAttributes politica di consegna (formato JSON)
<a name="set-topic-attributes-delivery-policy-json"></a>

Se invii una richiesta all'operazione `SetTopicAttributes` e imposti il parametro `AttributeName` su un valore di `DeliveryPolicy`, il valore del parametro `AttributeValue` deve essere un oggetto JSON valido. Per esempio, il caso seguente imposta la policy di consegna su 5 tentativi totali.

```
http://sns.us-east-2.amazonaws.com/
?Action=SetTopicAttributes
&TopicArn=arn%3Aaws%3Asns%3Aus-east-2%3A123456789012%3AMy-Topic
&AttributeName=DeliveryPolicy
&AttributeValue={"http":{"defaultHealthyRetryPolicy":{"numRetries":5}}}
...
```

Utilizza il seguente formato JSON per il valore del parametro `AttributeValue`.

```
{
    "http" : {
        "defaultHealthyRetryPolicy" : {
            "minDelayTarget":  int,
            "maxDelayTarget": int,
            "numRetries": int,
            "numMaxDelayRetries": int,
            "backoffFunction": "linear|arithmetic|geometric|exponential"
        },
        "disableSubscriptionOverrides" : Boolean,
        "defaultThrottlePolicy" : {
            "maxReceivesPerSecond" : int
        },
        "defaultRequestPolicy" : {
            "headerContentType" : "text/plain | application/json | application/xml"
        }
    }
}
```

Per ulteriori informazioni sull'`SetTopicAttribute`azione, consulta *Amazon Simple Notification Service API Reference*. [SetTopicAttributes](https://docs.aws.amazon.com/sns/latest/api/API_SetTopicAttributes.html) Per ulteriori informazioni sulle intestazioni dei tipi di contenuto HTTP supportate, consultare [Creazione di una politica di consegna HTTP/S](sns-message-delivery-retries.md#creating-delivery-policy).