Análisis de formatos de mensajes - Amazon Simple Notification Service

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Análisis de formatos de mensajes

Amazon SNS utiliza los siguientes formatos.

Encabezados de HTTP/HTTPS

Cuando Amazon SNS envía una confirmación de suscripción, una notificación o un mensaje de confirmación de anulación de la suscripción a los puntos de enlace HTTP/HTTPS, envía un mensaje POST con una serie de valores de encabezado específicos de Amazon SNS. Puede utilizar los valores del encabezado para tareas como identificar el tipo de mensaje sin tener que analizar el cuerpo del mensaje JSON para leer el valor de Type. De forma predeterminada, Amazon SNS envía todas las notificaciones a puntos de conexión HTTP/S con Content-Type establecido a text/plain; charset=UTF-8. Para elegir un Content-Type distinto de text/plain (valor predeterminado), consulte headerContentType en Creación de una política de entrega HTTP/S.

x-amz-sns-message-type

Tipo de mensaje. Los valores posibles son SubscriptionConfirmation, Notification y UnsubscribeConfirmation.

x-amz-sns-message-id

Un identificador único universal (UUID), único para cada mensaje publicado. En las notificaciones que Amazon SNS reenvía durante un reintento, se usa el ID de mensaje original.

x-amz-sns-topic-arn

Nombre de recurso de Amazon (ARN) del tema en el que se publicó el mensaje.

x-amz-sns-subscription-arn

ARN de la suscripción a este punto de enlace.

El siguiente encabezado HTTP POST es un ejemplo de encabezado para un mensaje Notification a un punto de conexión 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 confirmación de suscripción HTTP/HTTPS

Tras la suscripción a un punto de enlace HTTP/HTTPS, Amazon SNS envía un mensaje de confirmación de la suscripción al punto de enlace HTTP/HTTPS. Este mensaje contiene un valor SubscribeURL que debe visitar para confirmar la suscripción (o bien, puede utilizar el valor Token con ConfirmSubscription).

nota

Amazon SNS no envía notificaciones a este punto de conexión hasta que se confirma la suscripción

El mensaje de confirmación de la suscripción es un mensaje POST con un cuerpo que contiene un documento JSON con los siguientes pares de nombre-valor.

Type

Tipo de mensaje. Para obtener una confirmación de suscripción, el tipo es SubscriptionConfirmation.

MessageId

Un identificador único universal (UUID), único para cada mensaje publicado. En los mensajes que Amazon SNS reenvía durante un reintento, se usa el ID de mensaje original.

Token

Un valor que puede utilizar con la acción ConfirmSubscription para confirmar la suscripción. También puede visitar simplemente SubscribeURL.

TopicArn

Nombre de recurso de Amazon (ARN) del tema al que está suscrito este punto de enlace.

Message

Cadena que describe el mensaje. Para la confirmación de suscripción, esta cadena tiene el aspecto siguiente:

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

Dirección URL que debe visitar para confirmar la suscripción. O bien, puede utilizar Token con la acción ConfirmSubscription para confirmar la suscripción.

Timestamp

Hora (GMT) de envío de la confirmación de suscripción.

SignatureVersion

Versión de la firma de Amazon SNS utilizada.

  • Si SignatureVersion es 1, Signature es una firma SHA1withRSA codificada en Base64 de los valores Message, MessageId, Type, Timestamp y TopicArn.

  • Si SignatureVersion es 2, Signature es una firma SHA256withRSA codificada en Base64 de los valores Message, MessageId, Type, Timestamp y TopicArn.

Signature

Firma de SHA1withRSA o SHA256withRSA codificada en Base64 de los valores Message, MessageId, Type, Timestamp y TopicArn.

SigningCertURL

Dirección URL del certificado que se utilizó para firmar el mensaje.

El mensaje HTTP POST siguiente es un ejemplo de un mensaje de SubscriptionConfirmation a un punto de conexión 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 notificación HTTP/HTTPS

Cuando Amazon SNS envía una notificación a un punto de enlace HTTP o HTTPS suscrito, el cuerpo del mensaje POST enviado al punto de enlace contiene un documento JSON con los siguientes pares de nombre-valor.

Type

Tipo de mensaje. Para una notificación, el tipo es Notification.

MessageId

Un identificador único universal (UUID), único para cada mensaje publicado. En las notificaciones que Amazon SNS reenvía durante un reintento, se usa el ID de mensaje original.

TopicArn

Nombre de recurso de Amazon (ARN) del tema en el que se publicó el mensaje.

Subject

Parámetro Subject especificado cuando se publicó la notificación en el tema.

nota

Se trata de un parámetro opcional. Si no se especifica Subject, el par de nombre y valor no aparecerá en este documento JSON.

Message

Valor Message especificado cuando se publicó la notificación en el tema.

Timestamp

Hora (GMT) de publicación de la notificación.

SignatureVersion

Versión de la firma de Amazon SNS utilizada.

  • Si SignatureVersion es 1, Signature es una firma SHA1withRSA codificada en Base64 de los valores Message, MessageId, Subject ( si está presente), Type, Timestamp y TopicArn.

  • Si SignatureVersion es 2, Signature es una firma SHA256withRSA codificada en Base64 de los valores Message, MessageId, Subject ( si está presente), Type, Timestamp y TopicArn.

Signature

Firma de SHA1withRSA o SHA256withRSA codificada en Base64 de los valores Message, MessageId, Subject (si está presente), Type, Timestamp y TopicArn.

SigningCertURL

Dirección URL del certificado que se utilizó para firmar el mensaje.

UnsubscribeURL

Dirección URL que puede utilizar para cancelar la suscripción del punto de enlace a este tema. Si visita esta URL, Amazon SNS cancela la suscripción del punto de enlace y deja de enviarle notificaciones.

El mensaje HTTP POST siguiente es un ejemplo de un mensaje de Notification a un punto de conexión 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 confirmación de cancelación de suscripción HTTP/HTTPS

Después de cancelar la suscripción de un punto de enlace HTTP/HTTPS a un tema, Amazon SNS envía un mensaje de confirmación de cancelación de la suscripción al punto de enlace.

El mensaje de cancelación de la suscripción es un mensaje POST con un cuerpo que contiene un documento JSON con los siguientes pares de nombre-valor.

Type

Tipo de mensaje. Para obtener una confirmación de la cancelación de suscripción, el tipo es UnsubscribeConfirmation.

MessageId

Un identificador único universal (UUID), único para cada mensaje publicado. En los mensajes que Amazon SNS reenvía durante un reintento, se usa el ID de mensaje original.

Token

Valor que puede utilizar con la acción ConfirmSubscription para volver a confirmar la suscripción. También puede visitar simplemente SubscribeURL.

TopicArn

Nombre de recurso de Amazon (ARN) del tema del que el punto de enlace ha cancelado su suscripción.

Message

Cadena que describe el mensaje. Para la confirmación de la cancelación de suscripción, esta cadena tiene el aspecto siguiente:

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

Dirección URL que debe visitar para volver a confirmar la suscripción. O bien, puede utilizar Token con la acción ConfirmSubscription para volver a confirmar la suscripción.

Timestamp

Hora (GMT) de envío de la cancelación de la suscripción.

SignatureVersion

Versión de la firma de Amazon SNS utilizada.

  • Si SignatureVersion es 1, Signature es una firma SHA1withRSA codificada en Base64 de los valores Message, MessageId, Type, Timestamp y TopicArn.

  • Si SignatureVersion es 2, Signature es una firma SHA256withRSA codificada en Base64 de los valores Message, MessageId, Type, Timestamp y TopicArn.

Signature

Firma de SHA1withRSA o SHA256withRSA codificada en Base64 de los valores Message, MessageId, Type, Timestamp y TopicArn.

SigningCertURL

Dirección URL del certificado que se utilizó para firmar el mensaje.

El mensaje HTTP POST siguiente es un ejemplo de un mensaje de UnsubscribeConfirmation a un punto de conexión 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 de política de entrega SetSubscriptionAttributes

Si envía una solicitud a la acción SetSubscriptionAttributes y establece el parámetro AttributeName al valor DeliveryPolicy, el valor del parámetro AttributeValue válido debe ser un objeto JSON válido. Por ejemplo, el siguiente ejemplo establece la política de entrega en 5 reintentos en 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}} ...

Utilice el siguiente formato JSON para el valor del 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 obtener más información sobre la acción SetSubscriptionAttribute, consulte SetSubscriptionAttributes en la Referencia de la API de Amazon Simple Notification Service. Para obtener más información sobre los encabezados content-type de HTTP compatibles, consulte Creación de una política de entrega HTTP/S.

Formato JSON de política de entrega SetTopicAttributes

Si envía una solicitud a la acción SetTopicAttributes y establece el parámetro AttributeName al valor DeliveryPolicy, el valor del parámetro AttributeValue válido debe ser un objeto JSON válido. Por ejemplo, el siguiente ejemplo establece la política de entrega en 5 reintentos en 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}}} ...

Utilice el siguiente formato JSON para el valor del 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 obtener más información sobre la acción SetTopicAttribute, consulte SetTopicAttributes en la Referencia de la API de Amazon Simple Notification Service. Para obtener más información sobre los encabezados content-type de HTTP compatibles, consulte Creación de una política de entrega HTTP/S.