

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 para Amazon SQS
<a name="sqs-message-metadata"></a>

Utilice atributos de mensajes para agregar metadatos personalizados a los mensajes de Amazon SQS para sus aplicaciones. Utilice los atributos del sistema de mensajes para almacenar los metadatos y poder integrarlos con otros Servicios de AWS, como AWS X-Ray

## Atributos de mensajes de Amazon SQS
<a name="sqs-message-attributes"></a>

Amazon SQS le permite incluir metadatos estructurados (como marcas temporales, datos geoespaciales, firmas e identificadores) en 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 mediante Amazon SQS](sqs-using-send-message-with-attributes.md).

**nota**  
No confunda los atributos de los *mensajes con los atributos del sistema* de mensajes: si bien puede usar los atributos de los mensajes para adjuntar metadatos personalizados a los mensajes de Amazon SQS para sus aplicaciones, puede usar [los atributos del sistema de mensajes](#sqs-message-system-attributes) para almacenar metadatos para otros AWS servicios, como. AWS X-Ray

**Topics**
+ [

### Componentes de atributos de mensajes
](#message-attribute-components)
+ [

### Tipos de datos de atributos de mensajes
](#message-attribute-data-types)
+ [

### Calcular el resumen del MD5 mensaje para los atributos del mensaje
](#sqs-attributes-md5-message-digest-calculation)

### Componentes de atributos de mensajes
<a name="message-attribute-components"></a>

**importante**  
Todos los componentes de un atributo de mensaje se incluyen en la restricción de tamaño de mensaje de 1 MiB.  
`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](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessage.html)` 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
<a name="message-attribute-data-types"></a>

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^\$1126.
**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.

### Calcular el resumen del MD5 mensaje para los atributos del mensaje
<a name="sqs-attributes-md5-message-digest-calculation"></a>

Si utilizas el AWS SDK para Java, puedes saltarte esta sección. La `MessageMD5ChecksumHandler` clase del SDK para Java admite resúmenes de MD5 mensajes para los atributos de mensajes de Amazon SQS.

Si utiliza la API Query o una de las AWS SDKs que no admite resúmenes de MD5 mensajes para los atributos de mensajes de Amazon SQS, debe seguir las siguientes pautas para realizar MD5 el cálculo del resumen de mensajes.

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

#### Descripción general de
<a name="attributes-md5-message-digest-calculation-overview"></a>

A continuación, se ofrece una descripción general del algoritmo de cálculo del resumen de MD5 mensajes:

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

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

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

El siguiente diagrama muestra la codificación del resumen del MD5 mensaje para un único atributo del mensaje:

![\[Codificación del resumen del MD5 mensaje para un único atributo del mensaje.\]](http://docs.aws.amazon.com/es_es/AWSSimpleQueueService/latest/SQSDeveloperGuide/images/sqs-msg-attrib-md5.png)


#### Codificación de un único atributo de mensaje de Amazon SQS
<a name="attributes-md5-message-digest-calculation-encode-single-attribute"></a>

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

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

1. 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.

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

1. 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.

   1. 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
<a name="sqs-message-system-attributes"></a>

Aunque puede utilizar [atributos de mensajes](#sqs-message-attributes) 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](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessage.html)` y `[SendMessageBatch](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessageBatch.html)`, el atributo `AWSTraceHeader` de la acción de la API `[ReceiveMessage](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_ReceiveMessage.html)` y el tipo de datos `[MessageSystemAttributeValue](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_MessageSystemAttributeValue.html)` 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 `String` y su valor deben ser una cadena de encabezado de AWS X-Ray rastreo con el formato correcto.
+ El tamaño de un atributo del sistema de mensajes no cuenta para el tamaño total de un mensaje.