Metadatos de mensajes - Amazon Simple Queue 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.

Metadatos de mensajes

Puede utilizar atributos de mensajes para adjuntar metadatos personalizados a los mensajes de Amazon SQS para sus aplicaciones. Puede utilizar atributos del sistema de mensajes para almacenar metadatos para otros servicios de AWS, como AWS X-Ray.

Atributos de mensajes de Amazon SQS

Amazon SQS le permite incluir metadatos estructurados (como marcas temporales, datos geoespaciales, firmas e identificadores) con los mensajes mediante atributos de mensaje. Cada mensaje puede tener hasta 10 atributos. Los atributos de los mensajes son opcionales y están separados del cuerpo del mensaje (sin embargo, se envían con él). El consumidor puede utilizar los atributos de mensajes para controlar un mensaje de una forma concreta sin tener que procesar el cuerpo del mensaje en primer lugar. Para obtener información sobre cómo enviar mensajes con atributos mediante la consola de Amazon SQS, consulte Envío de un mensaje con atributos (consola).

nota

No confunda los atributos de mensaje con los atributos del sistema de mensajes: aunque puede utilizar atributos de mensaje para adjuntar metadatos personalizados a los mensajes de Amazon SQS para sus aplicaciones, puede utilizar atributos del sistema de mensajes para almacenar metadatos de otros servicios de AWS, como AWS X-Ray.

Componentes de atributos de mensajes

importante

Todos los componentes de un atributo de mensaje están incluidos en la restricción de tamaño de mensaje de 256 KB.

Name, Type, Value y el cuerpo del mensaje no deben estar vacíos ni ser null.

Cada atributo de mensaje consta de los siguientes componentes:

  • Nombre: el nombre del atributo de mensaje puede contener los siguientes caracteres: A-Z, a-z, 0-9, guion bajo (_), guion (-) y punto (.). Se aplican las siguientes restricciones:

    • Puede tener hasta 256 caracteres

    • No puede comenzar por AWS. o Amazon. (ni ninguna variación de mayúsculas y minúsculas)

    • Distingue entre mayúsculas y minúsculas

    • Debe ser único entre todos los nombres de atributo del mensaje

    • No debe comenzar ni terminar por un punto

    • No debe tener puntos seguidos

  • Tipo: el tipo de datos de atributo de mensaje. Los tipos admitidos son String, Number y Binary. También puede agregar información personalizada para cualquier tipo de datos. El tipo de datos tiene las mismas restricciones que el cuerpo del mensaje (para obtener más información, consulte SendMessage en la Referencia de la API de Amazon Simple Queue Service). Además, se aplican las siguientes restricciones:

    • Puede tener hasta 256 caracteres

    • Distingue entre mayúsculas y minúsculas

  • Valor: el valor del atributo de mensaje. Para los tipos de datos String, los valores de atributo tienen las mismas restricciones el cuerpo del mensaje.

Tipos de datos de atributos de mensajes

Los tipos de datos de atributo de mensaje indican a Amazon SQS cómo tratar los correspondientes valores de atributo de mensaje. Por ejemplo, si el tipo es Number, Amazon SQS valida valores numéricos.

Amazon SQS admite los tipos de datos lógicos String, Number y Binary con etiquetas de tipo de datos personalizadas opcionales con el formato .custom-data-type.

  • Cadena: los atributos String pueden almacenar texto Unicode mediante cualquier carácter XML válido.

  • Número: los atributos Number pueden almacenar valores numéricos positivos o negativos. Un número puede tener hasta 38 dígitos de precisión y puede estar comprendido entre 10^-128 y 10^+126.

    nota

    Amazon SQS quita los ceros al principio y al final.

  • Binario: los atributos binarios permiten almacenar datos binarios de cualquier índole, como datos comprimidos, datos cifrados o imágenes.

  • Personalizado: para crear un tipo de datos personalizado, añada la etiqueta custom-type a cualquier tipo de datos. Por ejemplo:

    • Number.byte, Number.short, Number.int y Number.float pueden ayudarle a distinguir entre tipos de números.

    • Binary.gif y Binary.png pueden ayudarle a distinguir entre tipos de archivos.

    nota

    Amazon SQS no interpreta, valida ni utiliza los datos añadidos.

    La etiqueta custom-type tiene las mismas restricciones que el cuerpo del mensaje.

Cálculo del resumen del mensaje MD5 para atributos de mensajes

Si utiliza AWS SDK for Java, puede saltarse esta sección. La clase MessageMD5ChecksumHandler del SDK para Java admite los resúmenes de mensajes MD5 para los atributos de mensajes de Amazon SQS.

Si utiliza la API de consulta o uno de los AWS SDK que no admita resúmenes de mensajes MD5 para los atributos de mensajes de Amazon SQS, debe seguir estas directrices para realizar el cálculo del resumen de mensajes MD5.

nota

Incluya siempre los sufijos de los tipos de datos personalizados en el cálculo del resumen de mensajes MD5.

Información general

A continuación se ofrece información general del algoritmo del cálculo del resumen del mensaje MD5:

  1. Ordenar todos los atributos de mensajes por nombre en orden ascendente.

  2. Codificar las partes individuales de cada atributo (Name, Type y Value) en un búfer.

  3. Calcular el resumen de mensaje de todo el búfer.

En el siguiente diagrama se muestra la codificación del resumen del mensaje MD5 para un único atributo de mensaje:

Para codificar un único atributo de mensaje de Amazon SQS

  1. Codifique el nombre: la longitud (4 bytes) y los bytes UTF-8 del nombre.

  2. Codifique el tipo de datos: la longitud (4 bytes) y los bytes UTF-8 del tipo de datos.

  3. Codifique el tipo de transporte (String o Binary) del valor (1 byte).

    nota

    Los tipos de datos lógicos String y Number utilizan el tipo de transporte String.

    El tipo de datos lógicos Binary utiliza el tipo de transporte Binary.

    1. Para el tipo de transporte String, codifique 1.

    2. Para el tipo de transporte Binary, codifique 2.

  4. Codifique el valor del atributo.

    1. Para el tipo de transporte String, codifique el valor del atributo: la longitud (4 bytes) y los bytes UTF-8 del valor.

    2. En el tipo de transporte Binary, codifique el valor del atributo: la longitud (4 bytes) y los bytes sin formato del valor.

Atributos del sistema de mensajes de Amazon SQS

Aunque puede utilizar atributos de mensajes para adjuntar metadatos personalizados a mensajes de Amazon SQS para sus aplicaciones, puede utilizar atributos del sistema de mensajes para almacenar metadatos para otros servicios de AWS, como AWS X-Ray. Para obtener más información, consulte el parámetro de solicitud MessageSystemAttribute de las acciones de la API SendMessage y SendMessageBatch, el atributo AWSTraceHeader de la acción de la API ReceiveMessage y el tipo de datos MessageSystemAttributeValue en la Referencia de la API de Amazon Simple Queue Service.

Los atributos del sistema de mensajes se estructuran exactamente igual que los atributos del mensaje, con las siguientes excepciones:

  • En la actualidad, el único atributo del sistema de mensajes admitido es AWSTraceHeader. Su tipo debe ser String y su valor debe ser una cadena de encabezado de rastreo de AWS X-Ray con el formato correcto.

  • El tamaño de un atributo del sistema de mensajes no cuenta para el tamaño total de un mensaje.