Analyse des formats des messages - Amazon Simple Notification Service

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.

Analyse des formats des messages

Amazon SNS utilise les formats suivants.

En-têtes HTTP/HTTPS

Lorsque Amazon SNS envoie un message de confirmation d'abonnement, de notification ou de confirmation de désabonnement aux points de terminaison HTTP/HTTPS, il envoie un message POST avec un certain nombre de valeurs d'en-tête spécifiques à Amazon SNS. Vous pouvez utiliser les valeurs d'en-tête pour des opérations telles que l'identification du type de message sans avoir à analyser le corps du message JSON pour lire la valeur Type. Par défaut, Amazon SNS envoie toutes les notifications aux points de terminaison HTTP/S avec Content-Type défini sur text/plain; charset=UTF-8. Pour choisir un Content-Type autre que text/plain (par défaut), consultez headerContentType dans Création d'une politique de distribution HTTP/S.

x-amz-sns-message-type

Type du message. Les valeurs possibles sont SubscriptionConfirmation, Notification et UnsubscribeConfirmation.

x-amz-sns-message-id

Identifiant unique universel (UUID), propre à chaque message publié. Pour une notification qu'Amazon SNS renvoie au cours d'une nouvelle tentative, l'ID du message d'origine est utilisé.

x-amz-sns-topic-arn

Amazon Resource Name (ARN) de la rubrique dans laquelle ce message a été publié.

x-amz-sns-subscription-arn

ARN de l'abonnement à ce point de terminaison.

L'en-tête HTTP POST suivant est un exemple d'en-tête pour un message Notification adressé à un point de terminaison 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

Format JSON de confirmation d'abonnement HTTP/HTTPS

Une fois que vous avez abonné un point de terminaison HTTP/HTTPS, Amazon SNS envoie un message de confirmation d'abonnement au point de terminaison HTTP/HTTPS. Ce message contient une valeur SubscribeURL que vous devez visiter pour confirmer l'abonnement (sinon, vous pouvez utiliser la valeur Token avec ConfirmSubscription).

Note

Amazon SNS n'envoie pas de notifications à ce point de terminaison tant que l'abonnement n'est pas confirmé

Le message de confirmation d'abonnement est un message POST dont le corps contient un document JSON avec les paires nom-valeur suivantes.

Type

Type du message. Pour une confirmation d'abonnement, le type est SubscriptionConfirmation.

MessageId

Identifiant unique universel (UUID), propre à chaque message publié. Pour un message qu'Amazon SNS renvoie au cours d'une nouvelle tentative, l'ID de message d'origine est utilisé.

Token

Valeur que vous pouvez utiliser avec l'action ConfirmSubscription pour confirmer l'abonnement. Sinon, vous pouvez simplement visiter le paramètre SubscribeURL.

TopicArn

Amazon Resource Name (ARN) de la rubrique à laquelle ce point de terminaison est abonné.

Message

Chaîne qui décrit le message. Pour une confirmation d'abonnement, cette chaîne se présente comme suit :

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

URL que vous devez visiter afin de confirmer l'abonnement. Sinon, vous pouvez utiliser à la place le Token avec l'action ConfirmSubscription pour confirmer l'abonnement.

Timestamp

Heure (GMT) à laquelle la confirmation d'abonnement a été envoyée.

SignatureVersion

Version de la signature Amazon SNS utilisée.

  • Si SignatureVersion a pour valeur 1, Signature est une signature SHA1withRSA codée en Base64 des valeurs Message, MessageId, Type, Timestamp et TopicArn.

  • Si SignatureVersion a pour valeur 2, Signature est une signature SHA256withRSA codée en Base64 des valeurs Message, MessageId, Type, Timestamp et TopicArn.

Signature

Signature SHA1withRSA ou SHA256withRSA codée en Base64 des valeurs Message, MessageId, Type, Timestamp et TopicArn.

SigningCertURL

URL permettant d'accéder au certificat utilisé pour signer le message.

Le message HTTP POST suivant est un exemple de message SubscriptionConfirmation à un point de terminaison 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" }

Format JSON de notification HTTP/HTTPS

Lorsqu'Amazon SNS envoie une notification à un point de terminaison HTTP ou HTTPS abonné, le corps du message POST envoyé au point de terminaison contient un document JSON avec les paires nom-valeur suivantes.

Type

Type du message. Pour une notification, le type est Notification.

MessageId

Identifiant unique universel (UUID), propre à chaque message publié. Pour une notification qu'Amazon SNS renvoie au cours d'une nouvelle tentative, l'ID du message d'origine est utilisé.

TopicArn

Amazon Resource Name (ARN) de la rubrique dans laquelle ce message a été publié.

Subject

Paramètre Subject spécifié quand la notification a été publiée dans la rubrique.

Note

Ce paramètre est facultatif. Si aucun paramètre Subject n'a été spécifié, cette paire nom-valeur n'apparaît pas dans ce document JSON.

Message

Valeur Message spécifiée quand la notification a été publiée dans la rubrique.

Timestamp

Heure (GMT) à laquelle la notification a été publiée.

SignatureVersion

Version de la signature Amazon SNS utilisée.

  • Si SignatureVersion a pour valeur 1, Signature est une signature SHA1withRSA codée en Base64 des valeurs Message, MessageId, Subject (le cas échéant), Type, Timestamp et TopicArn.

  • Si SignatureVersion a pour valeur 2, Signature est une signature SHA256withRSA codée en Base64 des valeurs Message, MessageId, Subject (le cas échéant), Type, Timestamp et TopicArn.

Signature

Signature SHA1withRSA ou SHA256withRSA codée en Base64 des valeurs Message, MessageId, Subject (le cas échéant), Type, Timestamp et TopicArn.

SigningCertURL

URL permettant d'accéder au certificat utilisé pour signer le message.

UnsubscribeURL

URL que vous pouvez utiliser pour désabonner le point de terminaison de cette rubrique. Si vous visitez cette URL, Amazon SNS désabonne le point de terminaison et cesse de lui envoyer des notifications.

Le message HTTP POST suivant est un exemple de message Notification à un point de terminaison 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" } }

Format JSON de confirmation de désabonnement HTTP/HTTPS

Une fois qu'un point de terminaison HTTP/HTTPS est désabonné d'une rubrique, Amazon SNS envoie un message de confirmation de désabonnement au point de terminaison.

Le message de confirmation de désabonnement est un message POST dont le corps contient un document JSON avec les paires nom-valeur suivantes.

Type

Type du message. Pour une confirmation de désabonnement, le type est UnsubscribeConfirmation.

MessageId

Identifiant unique universel (UUID), propre à chaque message publié. Pour un message qu'Amazon SNS renvoie au cours d'une nouvelle tentative, l'ID de message d'origine est utilisé.

Token

Valeur que vous pouvez utiliser avec l'action ConfirmSubscription pour reconfirmer l'abonnement. Sinon, vous pouvez simplement visiter le paramètre SubscribeURL.

TopicArn

Amazon Resource Name (ARN) de la rubrique dont ce point de terminaison s'est désabonné.

Message

Chaîne qui décrit le message. Pour une confirmation de désabonnement, cette chaîne se présente comme suit :

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

URL que vous devez visiter afin de reconfirmer l'abonnement. Sinon, vous pouvez utiliser à la place le Token avec l'action ConfirmSubscription pour reconfirmer l'abonnement.

Timestamp

Heure (GMT) à laquelle la confirmation de désabonnement a été envoyée.

SignatureVersion

Version de la signature Amazon SNS utilisée.

  • Si SignatureVersion a pour valeur 1, Signature est une signature SHA1withRSA codée en Base64 des valeurs Message, MessageId, Type, Timestamp et TopicArn.

  • Si SignatureVersion a pour valeur 2, Signature est une signature SHA256withRSA codée en Base64 des valeurs Message, MessageId, Type, Timestamp et TopicArn.

Signature

Signature SHA1withRSA ou SHA256withRSA codée en Base64 des valeurs Message, MessageId, Type, Timestamp et TopicArn.

SigningCertURL

URL permettant d'accéder au certificat utilisé pour signer le message.

Le message HTTP POST suivant est un exemple de message UnsubscribeConfirmation à un point de terminaison 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" }

Format JSON de politique de diffusion SetSubscriptionAttributes

Si vous envoyez une demande à l'action SetSubscriptionAttributes et que vous définissez le paramètre AttributeName sur la valeur DeliveryPolicy, la valeur du paramètre AttributeValue doit être un objet JSON valide. Par exemple, l'exemple suivant définit la politique de diffusion sur 5 tentatives au total.

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

Utilisez le format JSON suivant pour la valeur du paramètre 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" } }

Pour plus d'informations sur l'action SetSubscriptionAttribute, accédez à SetSubscriptionAttributes dans la Référence d'API Amazon Simple Notification Service. Pour plus d'informations sur les en-têtes content-type HTTP pris en charge, consultez Création d'une politique de distribution HTTP/S.

Format JSON de politique de diffusion SetTopicAttributes

Si vous envoyez une demande à l'action SetTopicAttributes et que vous définissez le paramètre AttributeName sur la valeur DeliveryPolicy, la valeur du paramètre AttributeValue doit être un objet JSON valide. Par exemple, l'exemple suivant définit la politique de diffusion sur 5 tentatives au total.

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

Utilisez le format JSON suivant pour la valeur du paramètre 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" } } }

Pour de plus amples informations sur l'action SetTopicAttribute, accédez à SetTopicAttributes dans la Référence d'API Amazon Simple Notification Service. Pour plus d'informations sur les en-têtes content-type HTTP pris en charge, consultez Création d'une politique de distribution HTTP/S.