Analisi dei formati di messaggi - Amazon Simple Notification Service

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 utilizza i seguenti formati.

Intestazioni HTTP/HTTPS

Quando Amazon SNS manda un messaggio di conferma o annullamento dell'iscrizione o di notifica agli endpoint HTTP/HTTPS, invia un messaggio POST con un numero di valori d'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 Content-Type diverso da text/plain (impostazione predefinita), consultare headerContentType in Creazione di una policy di consegna HTTP/S.

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

Una volta effettuata la sottoscrizione all'endpoint HTTP/HTTPS, Amazon SNS invia a esso un messaggio di conferma. Tale messaggio contiene un valore SubscribeURL da selezionare per confermare la sottoscrizione. In alternativa, puoi utilizzare il valore Token con ConfirmSubscription.

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 ConfirmSubscription 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 ConfirmSubscription 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, MessageIdType, 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

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.

Nota

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, MessageIdSubject (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

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

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 ConfirmSubscription 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 ConfirmSubscription 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, MessageIdType, 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" }

Policy di consegna di SetSubscriptionAttributes in formato JSON

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’operazione SetSubscriptionAttribute, passa a SetTopicAttributes nella Documentazione di riferimento dell’API di Amazon Simple Notification Service. Per ulteriori informazioni sulle intestazioni dei tipi di contenuto HTTP supportate, consultare Creazione di una policy di consegna HTTP/S.

Policy di consegna SetTopicAttributes in formato JSON

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 sulla SetTopicAttribute azione, vai a SetTopicAttributes nella Amazon Simple Notification Service API reference. Per ulteriori informazioni sulle intestazioni dei tipi di contenuto HTTP supportate, consultare Creazione di una policy di consegna HTTP/S.