Analyse des formats des messages - Amazon Simple Notification Service

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 ces valeurs d'en-tête pour effectuer des opérations telles que l'identification du type de message, sans avoir à analyser le corps du message JSON pour lire la valeur Type.

x-amz-sns-message-type

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

x-amz-sns-message-id

Identificateur unique universel, 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 de notification envoyé à 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 un paramètre SubscribeURL que vous devez visiter pour valider l'abonnement (sinon, vous pouvez utiliser le paramètre Token avec l'action 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.

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

Identificateur unique universel, 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é.

Signature

Signature cryptée Base64 « SHA1withRSA » des valeurs Message, MessageId, Type, Timestamp et TopicArn.

SignatureVersion

Version de la signature Amazon SNS utilisée.

SigningCertURL

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

SubscribeURL

URL que vous devez visiter afin de confirmer l'abonnement. Vous pouvez également utiliser le paramètre Token avec l'action ConfirmSubscription pour confirmer l'abonnement.

Timestamp

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

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

Type

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

Le message HTTP POST suivant est un exemple de message SubscriptionConfirmation envoyé à 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.

Message

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

MessageId

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

Signature

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

SignatureVersion

Version de la signature Amazon SNS utilisée.

SigningCertURL

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

Subject

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

Note

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

Timestamp

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

TopicArn

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

Type

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

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

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

Identificateur unique universel, 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é.

Signature

Signature cryptée Base64 « SHA1withRSA » des valeurs Message, MessageId, Type, Timestamp et TopicArn.

SignatureVersion

Version de la signature Amazon SNS utilisée.

SigningCertURL

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

SubscribeURL

URL que vous devez visiter afin de reconfirmer l'abonnement. Vous pouvez également utiliser le paramètre Token avec l'action ConfirmSubscription pour reconfirmer l'abonnement.

Timestamp

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

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

Type

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

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

Pour plus d'informations sur l'action SetSubscriptionAttribute, consultez la section SetSubscriptionAttributes dans la Référence d'API Amazon Simple Notification Service.

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

Pour de plus amples informations sur l'action SetTopicAttribute, accédez à SetTopicAttributes dans la Référence d'API Amazon Simple Notification Service.