Analisar formatos de mensagens - 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á.

Analisar formatos de mensagens

O Amazon SNS usa os formatos a seguir.

Cabeçalhos HTTP/HTTPS

Quando o Amazon SNS envia uma confirmação de assinatura, uma notificação ou uma mensagem de confirmação de cancelamento da assinatura para endpoints HTTP/HTTPS, ele envia uma mensagem POST com uma série de valores de cabeçalho específicos do Amazon SNS. É possível usar valores de cabeçalho para tarefas como identificar o tipo de mensagem sem precisar analisar o corpo da mensagem JSON para ler o valor Type. Por padrão, o 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 emComo criar uma política de entrega 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 o Amazon SNS reenvia durante uma nova tentativa, o ID da mensagem original é usado.

x-amz-sns-topic-arn

O Nome de recurso da Amazon (ARN) para o tópico em que essa mensagem foi publicada.

x-amz-sns-subscription-arn

O ARN para a inscrição desse endpoint.

O cabeçalho HTTP POST a seguir é um exemplo de um cabeçalho para uma mensagem de Notification para um 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

Formato JSON de confirmação de assinatura HTTP/HTTPS

Depois de você inscrever um endpoint HTTP/HTTPS, o Amazon SNS enviará uma mensagem de confirmação de inscrição para o endpoint HTTP/HTTPS. 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

O Amazon SNS não enviará notificações para esse endpoint enquanto a inscrição não for confirmada.

A mensagem de confirmação da inscrição é uma mensagem POST com um corpo de mensagem que contém um documento JSON com os pares de nome/valor a seguir.

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 o 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 Nome de recurso da Amazon (ARN) para o tópico em que este 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 acessar para confirmar a inscrição. Como alternativa, é possível usar o Token com a ação ConfirmSubscription para confirmar a assinatura.

Timestamp

A hora (GMT) quando a confirmação da inscrição foi enviada.

SignatureVersion

Versão da assinatura do Amazon SNS 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 do certificado que foi usado para assinar a mensagem.

A mensagem HTTP POST a seguir é um exemplo de uma mensagem de SubscriptionConfirmation para um 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" }

Formato JSON de notificação HTTP/HTTPS

Quando o Amazon SNS envia uma notificação para um endpoint HTTP ou HTTPS inscrito, a mensagem POST enviada para o endpoint tem um corpo da mensagem que contém um documento JSON 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 o Amazon SNS reenvia durante uma nova tentativa, o ID da mensagem original é usado.

TopicArn

O Nome de recurso da Amazon (ARN) para o tópico em que 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 nenhum Subject foi especificado, esse par de nome/valor não é exibido nesse documento JSON.

Message

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

Timestamp

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

SignatureVersion

Versão da assinatura do Amazon SNS 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 do certificado que foi usado para assinar a mensagem.

UnsubscribeURL

Um URL que você pode usar para cancelar a inscrição do endpoint com base neste tópico. Se você acessar este URL, o Amazon SNS cancela a inscrição do endpoint e interrompe o envio de notificações para esse endpoint.

A mensagem HTTP POST a seguir é um exemplo de uma mensagem de Notification para um 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" } }

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

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

A mensagem de confirmação do cancelamento da inscrição é uma mensagem POST com um corpo de mensagem que contém um documento JSON com os pares de nome/valor a seguir.

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 o 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 Nome de recurso da Amazon (ARN) para o tópico do qual esse endpoint teve sua inscrição 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 acessar para confirmar novamente a inscrição. Como alternativa, é possível usar o Token com a ação ConfirmSubscription para confirmar novamente a assinatura.

Timestamp

A hora (GMT) quando a confirmação de cancelamento da inscrição foi enviada.

SignatureVersion

Versão da assinatura do Amazon SNS 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 do certificado que foi usado para assinar a mensagem.

A mensagem HTTP POST a seguir é um exemplo de uma mensagem de UnsubscribeConfirmation para um 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" }

Formato JSON da política de entrega SetSubscriptionAttributes

Se você envia uma solicitação para a ação SetSubscriptionAttributes e define o parâmetro AttributeName para um valor de DeliveryPolicy, o valor do parâmetro AttributeValue deve ser um objeto JSON 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 formato JSON a seguir para o valor do parâmetro 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" } }

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

Formato JSON da política de entrega SetTopicAttributes

Se você envia uma solicitação para a ação SetTopicAttributes e define o parâmetro AttributeName para um valor de DeliveryPolicy, o valor do parâmetro AttributeValue deve ser um objeto JSON 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 formato JSON a seguir para o valor do parâmetro 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" } } }

Para obter mais informações sobre a ação SetTopicAttribute, consulte SetSubscriptionAttributes na Referência da API do Amazon Simple Notification Service. Para obter mais informações sobre os cabeçalhos do tipo de conteúdo HTTP compatíveis, consulte Como criar uma política de entrega HTTP/S.