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.
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 el envío de mensajes con atributos mediante el AWS Management Console o el AWS SDK para Java, consulte el Para publicar mensajes en temas de Amazon SNS mediante la AWS Management Console, siga estos pasos: tutorial.
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.
oAmazon.
(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
yBinary
. El tipo de datos tiene las mismas restricciones en lo que respecta al contenido que el cuerpo del mensaje. 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 de cadena, el atributo value debe seguir las mismas restricciones de contenido que el cuerpo del mensaje. Sin embargo, si el atributo message se utiliza para filtrar, el valor debe ser una cadena JSON válida para garantizar la compatibilidad con las políticas de filtrado de suscripciones de Amazon SNS. 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 los valores de código, 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
ynull
. Un String.Array de tipo numérico o booleano no requiere comillas. Los distintos valores de String.Array están separados por comas.Este tipo de datos no se admite en las AWS Lambda suscripciones. 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.
Este tipo de datos no se admite en las AWS Lambda suscripciones. 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 |
APNs1 | 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 |
|
|
|
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 información, consulta Cómo enviar solicitudes de notificación al APNs