Atributos de mensajes de Amazon SNS - 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.

Atributos de mensajes de Amazon SNS

Amazon SNS admite los atributos de entrega de mensajes, con los que se pueden ofrecer elementos de metadatos estructurados (como marcas temporales, datos geoespaciales, firmas e identificadores) relacionados con el mensaje. En el caso de las suscripciones SQS, se puede enviar un máximo de 10 atributos de mensaje cuando se activa Raw Message Delivery (Entrega de mensajes sin procesar). Para enviar más de 10 atributos de mensaje, debe estar desactivada la entrega de mensajes sin procesar. Los mensajes con más de 10 atributos de mensaje dirigidos a las suscripciones de Amazon SQS habilitadas para la entrega de mensajes sin procesar se descartarán como errores del cliente.

Los atributos de los mensajes son opcionales y están separados del cuerpo de los mensajes, pero se envían junto a él. El receptor puede utilizar esta información para decidir cómo gestionar el mensaje sin tener que procesar el cuerpo de este en primer lugar.

Para obtener información sobre cómo enviar mensajes con atributos mediante la AWS Management Console o el AWS SDK for Java, consulte el tutorial Para publicar mensajes en temas de Amazon SNS mediante la AWS Management Console, siga estos pasos:.

nota

Los atributos de los mensajes se envían únicamente cuando la estructura de los mensajes es String, no JSON.

También puede utilizar los atributos del mensaje como ayuda para estructurar el mensaje de notificación push en los puntos de enlace móviles. En este caso, los atributos del mensaje solo se usan para ayudar a estructurar el mensaje de notificación push. Los atributos no se entregan al punto de enlace, como se entregan cuando se envían mensajes con atributos a puntos de enlace de Amazon SQS.

También puede utilizar atributos de mensajes para que sus mensajes se puedan filtrar mediante políticas de filtro de suscripciones. Puede aplicar políticas de filtro a las suscripciones de temas. Cuando se aplica una política de filtrado con el alcance de la política de filtrado establecido en MessageAttributes (predeterminado), una suscripción recibe solo los mensajes que tienen atributos aceptados por la política. Para obtener más información, consulte Filtrado de mensajes en Amazon SNS.

nota

Cuando se utilizan atributos de mensaje para el filtrado, el valor debe ser una cadena JSON válida. De este modo, se garantiza que el mensaje se entrega a una suscripción con el filtrado de atributos de mensajes activado.

Elementos y validación de los atributos de los mensajes

Cada atributo de mensaje consta de los siguientes elementos:

  • Nombre: el nombre del atributo de mensaje puede contener los siguientes caracteres: A-Z, a-z, 0-9, subrayado (_), guion (-) y punto (.). El nombre no debe comenzar ni finalizar con un punto y no debe tener dos puntos sucesivos. El nombre distingue entre mayúsculas y minúsculas y debe ser único entre todos los nombres de atributo del mensaje. El nombre puede tener una longitud de hasta 256 caracteres. El nombre no puede comenzar con AWS. o Amazon. (ni ninguna variación en el uso de mayúsculas y minúsculas), ya que estos prefijos están reservados para el uso de Amazon Web Services.

  • Tipo: los tipos de datos admitidos para el atributo de mensaje son String, String.Array, Number y Binary. El tipo de datos tiene las mismas restricciones en lo que respecta al contenido que el cuerpo del mensaje. El tipo de datos distingue entre mayúsculas y minúsculas y puede tener una longitud de hasta 256 bytes. Para obtener más información, consulte la sección Tipos de datos y validación de los atributos de los mensajes.

  • Valor: el valor del atributo de mensaje especificado por el usuario. Para los tipos de datos String, el atributo de valor tiene las mismas restricciones en lo que respecta al contenido que el cuerpo del mensaje. Para obtener más información, consulte la acción Publicar en la Referencia de la API de Amazon Simple Notification Service.

El nombre, el tipo y el valor no deben estar vacíos ni ser null. Además, el cuerpo del mensaje no debe estar vacío ni ser null. Todas las partes del atributo de mensaje, incluido el nombre, el tipo y el valor, están incluidas en la restricción de tamaño del mensaje, que actualmente es de 256 KB.

Tipos de datos y validación de los atributos de los mensajes

Los tipos de datos de los atributos de los mensajes identifican la forma en que Amazon SNS gestiona los valores de los atributos de los mensajes. Por ejemplo, si el tipo es un número, Amazon SNS valida que es un número.

Amazon SNS admite los siguientes tipos de datos lógicos para todos los puntos de enlace, excepto según se indica:

  • Cadena: las cadenas son Unicode con codificación binaria UTF-8. Para obtener una lista de valores de códigos, consulte http://en.wikipedia.org/wiki/ASCII#ASCII_printable_characters.

    nota

    No se admiten valores sustitutos en los atributos de los mensajes. Por ejemplo, si se utiliza un valor sustituto para representar un emoji, se producirá el siguiente error: Invalid attribute value was passed in for message attribute.

  • Cadena.matriz: una matriz, con formato de cadena, que puede contener varios valores. Los valores pueden ser cadenas, números o las palabras clave true, false y null. Un String.Array de tipo numérico o booleano no requiere comillas. Los distintos valores de String.Array están separados por comas.

    No se admite este tipo de datos para las suscripciones de AWS Lambda. Si especifica este tipo de datos para los puntos de enlace de Lambda, se pasa como el tipo de datos String en la carga útil JSON que Amazon SNS entrega a Lambda.

  • Número: los números son enteros positivos o negativos o números de coma flotante. Tienen una precisión y un rango adecuados para abarcar la mayoría de los posibles valores que los tipos integer, float y double admiten normalmente. Un número puede tener un valor comprendido entre -109 y 109, con una precisión de 5 dígitos tras el separador decimal. Los ceros iniciales y finales se recortan.

    No se admite este tipo de datos para las suscripciones de AWS Lambda. Si especifica este tipo de datos para los puntos de enlace de Lambda, se pasa como el tipo de datos String en la carga útil JSON que Amazon SNS entrega a Lambda.

  • Binario: con los atributos de tipo binarios, se puede almacenar datos binarios de cualquier índole, tales como datos comprimidos, datos cifrados o imágenes.

Atributos de mensaje reservados para notificaciones de inserción en móviles

En la siguiente tabla se muestran los atributos de mensaje reservados para los servicios de notificación push en móviles que puede utilizar para estructurar su mensaje de notificación push:

Servicio de notificaciones de inserción Atributo de mensaje reservado
ADM AWS.SNS.MOBILE.ADM.TTL
APN1 AWS.SNS.MOBILE.APNS_MDM.TTL
AWS.SNS.MOBILE.APNS_MDM_SANDBOX.TTL
AWS.SNS.MOBILE.APNS_PASSBOOK.TTL
AWS.SNS.MOBILE.APNS_PASSBOOK_SANDBOX.TTL
AWS.SNS.MOBILE.APNS_SANDBOX.TTL
AWS.SNS.MOBILE.APNS_VOIP.TTL
AWS.SNS.MOBILE.APNS_VOIP_SANDBOX.TTL
AWS.SNS.MOBILE.APNS.COLLAPSE_ID
AWS.SNS.MOBILE.APNS.PRIORITY
AWS.SNS.MOBILE.APNS.PUSH_TYPE
AWS.SNS.MOBILE.APNS.TOPIC
AWS.SNS.MOBILE.APNS.TTL

Baidu

AWS.SNS.MOBILE.BAIDU.DeployStatus
AWS.SNS.MOBILE.BAIDU.MessageKey
AWS.SNS.MOBILE.BAIDU.MessageType
AWS.SNS.MOBILE.BAIDU.TTL
FCM AWS.SNS.MOBILE.FCM.TTL
AWS.SNS.MOBILE.GCM.TTL
macOS AWS.SNS.MOBILE.MACOS_SANDBOX.TTL
AWS.SNS.MOBILE.MACOS.TTL

MPNS

AWS.SNS.MOBILE.MPNS.NotificationClass
AWS.SNS.MOBILE.MPNS.TTL

AWS.SNS.MOBILE.MPNS.Type

WNS AWS.SNS.MOBILE.WNS.CachePolicy
AWS.SNS.MOBILE.WNS.Group
AWS.SNS.MOBILE.WNS.Match
AWS.SNS.MOBILE.WNS.SuppressPopup
AWS.SNS.MOBILE.WNS.Tag
AWS.SNS.MOBILE.WNS.TTL
AWS.SNS.MOBILE.WNS.Type

1 Apple rechazará las notificaciones de Amazon SNS si los atributos de los mensajes no cumplen sus requisitos. Para obtener más detalles, consulte Envío de solicitudes de notificación a APN en el sitio web para desarrolladores de Apple.