Analisando formatos de SNS mensagem da Amazon - Amazon Simple Notification Service

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Analisando formatos de SNS mensagem da Amazon

A Amazon SNS usa os seguintes formatos.

HTTP/HTTPScabeçalhos

Quando a Amazon SNS envia uma mensagem de confirmação, notificação ou confirmação de cancelamento de assinatura para HTTP HTTPS /endpoints, ela envia uma POST mensagem com vários valores de cabeçalho SNS específicos da Amazon. Você pode usar valores de cabeçalho para tarefas como identificar o tipo de mensagem sem precisar analisar o corpo da JSON mensagem para ler o Type valor. Por padrão, a Amazon SNS envia todas as notificações para endpoints HTTP /S com Content-Type definido como. text/plain; charset=UTF-8 Para escolher um Content-Type diferente de texto/simples (padrão), consulte headerContentType emCriação de uma política de entrega de HTTP /S.

x-amz-sns-message-type

O tipo de mensagem. Os valores possíveis são SubscriptionConfirmation, Notification e UnsubscribeConfirmation.

x-amz-sns-message-id

Um identificador universalmente exclusivo (UUID), exclusivo para cada mensagem publicada. Para uma notificação que a Amazon SNS reenvia durante uma nova tentativa, o ID da mensagem original é usado.

x-amz-sns-topic-arn

O nome do recurso da Amazon (ARN) para o tópico no qual essa mensagem foi publicada.

x-amz-sns-subscription-arn

O ARN para a assinatura desse endpoint.

O HTTP POST cabeçalho a seguir é um exemplo de cabeçalho para uma Notification mensagem em um HTTP endpoint.

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

HTTP/JSONformato HTTPS de confirmação de assinatura

Depois de assinar um HTTP/HTTPS endpoint, Amazon SNS sends a subscription confirmation message to the HTTP/HTTPS endpoint. Essa mensagem contém um valor SubscribeURL que você deve consultar para confirmar a assinatura (como alternativa, é possível usar o valor Token com o ConfirmSubscription).

nota

A Amazon SNS não envia notificações para esse endpoint até que a assinatura seja confirmada

A mensagem de confirmação da assinatura é uma POST mensagem com um corpo de mensagem que contém um JSON documento com os seguintes pares de nome e valor.

Type

O tipo de mensagem. Para uma confirmação da inscrição, o tipo é SubscriptionConfirmation.

MessageId

Um identificador universalmente exclusivo (UUID), exclusivo para cada mensagem publicada. Para uma mensagem que a Amazon SNS reenvia durante uma nova tentativa, o ID da mensagem original é usado.

Token

Um valor que pode ser usado com a ação ConfirmSubscription para confirmar a assinatura. Como alternativa, você pode simplesmente acessar o SubscribeURL.

TopicArn

O Amazon Resource Name (ARN) para o tópico no qual esse endpoint está inscrito.

Message

Uma string que descreve a mensagem. Para confirmação da inscrição, esta string é semelhante a:

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

O URL que você deve visitar para confirmar a assinatura. Como alternativa, é possível usar o Token com a ação ConfirmSubscription para confirmar a assinatura.

Timestamp

A hora (GMT) em que a confirmação da assinatura foi enviada.

SignatureVersion

Versão da SNS assinatura da Amazon usada.

  • Se SignatureVersion for 1, Signature será uma assinatura SHA1withRSA codificada em Base64 dos valores Message, MessageId, Type, Timestamp e TopicArn.

  • Se SignatureVersion for 2, Signature será uma assinatura SHA256withRSA codificada em Base64 dos valores Message, MessageId, Type, Timestamp e TopicArn.

Signature

Assinatura SHA1withRSA ou SHA256withRSA codificada em Base64 dos valores Message, MessageId, Type, Timestamp e TopicArn.

SigningCertURL

O URL para o certificado que foi usado para assinar a mensagem.

A HTTP POST mensagem a seguir é um exemplo de SubscriptionConfirmation mensagem para um HTTP endpoint.

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

HTTP/JSONformato HTTPS de notificação

Quando a Amazon SNS envia uma notificação para um assinante HTTP ou HTTPS endpoint, a POST mensagem enviada para o endpoint tem um corpo de mensagem que contém um JSON documento com os seguintes pares de nome/valor.

Type

O tipo de mensagem. Para uma notificação, o tipo é Notification.

MessageId

Um identificador universalmente exclusivo (UUID), exclusivo para cada mensagem publicada. Para uma notificação que a Amazon SNS reenvia durante uma nova tentativa, o ID da mensagem original é usado.

TopicArn

O nome do recurso da Amazon (ARN) para o tópico no qual essa mensagem foi publicada.

Subject

O parâmetro Subject especificado quando a notificação foi publicada no tópico.

nota

Esse parâmetro é opcional. Se não tiver Subject sido especificado, esse par nome-valor não aparecerá neste JSON documento.

Message

O valor Message especificado quando a notificação foi publicada no tópico.

Timestamp

A hora (GMT) em que a notificação foi publicada.

SignatureVersion

Versão da SNS assinatura da Amazon usada.

  • Se SignatureVersion for 1, Signature será uma assinatura SHA1withRSA codificada em Base64 dos valores Message, MessageId, Subject (se presente), Type, Timestamp e TopicArn.

  • Se SignatureVersion for 2, Signature será uma assinatura SHA256withRSA codificada em Base64 dos valores Message, MessageId, Subject (se presente), Type, Timestamp e TopicArn.

Signature

Assinatura SHA1withRSA ou SHA256withRSA codificada em Base64 dos valores Message, MessageId, Subject (se presente), Type, Timestamp e TopicArn.

SigningCertURL

O URL para o certificado que foi usado para assinar a mensagem.

UnsubscribeURL

Um URL que você pode usar para cancelar a inscrição do endpoint neste tópico. Se você visitar issoURL, a Amazon cancelará a SNS assinatura do endpoint e deixará de enviar notificações para esse endpoint.

A HTTP POST mensagem a seguir é um exemplo de Notification mensagem para um HTTP endpoint.

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

HTTP/formato de confirmação de HTTPS cancelamento de JSON assinatura

Depois que um HTTPS endpointHTTP/é desinscrito em um tópico, a Amazon SNS envia uma mensagem de confirmação de cancelamento de inscrição para o endpoint.

A mensagem de confirmação de cancelamento de assinatura é uma POST mensagem com um corpo de mensagem que contém um JSON documento com os seguintes pares de nome e valor.

Type

O tipo de mensagem. Para uma confirmação de cancelamento de inscrição, o tipo é UnsubscribeConfirmation.

MessageId

Um identificador universalmente exclusivo (UUID), exclusivo para cada mensagem publicada. Para uma mensagem que a Amazon SNS reenvia durante uma nova tentativa, o ID da mensagem original é usado.

Token

Um valor que pode ser usado com a ação ConfirmSubscription para confirmar novamente a assinatura. Como alternativa, você pode simplesmente acessar o SubscribeURL.

TopicArn

O Amazon Resource Name (ARN) para o tópico do qual a assinatura desse endpoint foi cancelada.

Message

Uma string que descreve a mensagem. Para a confirmação de cancelamento de inscrição, esta string é semelhante a:

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

O URL que você deve visitar para reconfirmar a assinatura. Como alternativa, é possível usar o Token com a ação ConfirmSubscription para confirmar novamente a assinatura.

Timestamp

A hora (GMT) em que a confirmação de cancelamento da assinatura foi enviada.

SignatureVersion

Versão da SNS assinatura da Amazon usada.

  • Se SignatureVersion for 1, Signature será uma assinatura SHA1withRSA codificada em Base64 dos valores Message, MessageId, Type, Timestamp e TopicArn.

  • Se SignatureVersion for 2, Signature será uma assinatura SHA256withRSA codificada em Base64 dos valores Message, MessageId, Type, Timestamp e TopicArn.

Signature

Assinatura SHA1withRSA ou SHA256withRSA codificada em Base64 dos valores Message, MessageId, Type, Timestamp e TopicArn.

SigningCertURL

O URL para o certificado que foi usado para assinar a mensagem.

A HTTP POST mensagem a seguir é um exemplo de UnsubscribeConfirmation mensagem para um HTTP endpoint.

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

SetSubscriptionAttributesJSONformato da política de entrega

Se você enviar uma solicitação para a SetSubscriptionAttributes ação e definir o AttributeName parâmetro com um valor deDeliveryPolicy, o valor do AttributeValue parâmetro deverá ser um JSON objeto válido. Por exemplo, o exemplo a seguir define a política de entrega para um total de cinco novas tentativas.

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

Use o JSON formato a seguir para o valor do AttributeValue parâmetro.

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

Para obter mais informações sobre a SetSubscriptionAttribute ação, acesse a SetSubscriptionAttributesAPIReferência do Amazon Simple Notification Service. Para obter mais informações sobre os cabeçalhos de HTTP tipo de conteúdo compatíveis, consulte. Criação de uma política de entrega de HTTP /S

SetTopicAttributes JSONformato da política de entrega

Se você enviar uma solicitação para a SetTopicAttributes ação e definir o AttributeName parâmetro com um valor deDeliveryPolicy, o valor do AttributeValue parâmetro deverá ser um JSON objeto válido. Por exemplo, o exemplo a seguir define a política de entrega para um total de cinco novas tentativas.

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

Use o JSON formato a seguir para o valor do AttributeValue parâmetro.

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

Para obter mais informações sobre a SetTopicAttribute ação, acesse a SetTopicAttributesAPIReferência do Amazon Simple Notification Service. Para obter mais informações sobre os cabeçalhos de HTTP tipo de conteúdo compatíveis, consulte. Criação de uma política de entrega de HTTP /S