

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Metadados de mensagens para o Amazon SQS
<a name="sqs-message-metadata"></a>

Use atributos de mensagem para adicionar metadados personalizados a mensagens do Amazon SQS para suas aplicações. Use atributos do sistema de mensagens para armazenar metadados para integração com outros Serviços da AWS, como AWS X-Ray.

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

O Amazon SQS permite a inclusão de metadados estruturados (como carimbos de data e hora, dados geoespaciais, assinaturas e identificadores) com mensagens usando os *atributos de mensagem*. Cada mensagem pode ter até dez atributos. Os atributos de mensagem são opcionais e separados do corpo da mensagem (no entanto, são enviados junto com o corpo da mensagem). O consumidor pode usar atributos de mensagem para tratar uma mensagem de uma forma específica sem precisar primeiro processar o corpo da mensagem. Para obter informações sobre como enviar mensagens com atributos usando o console do Amazon SQS, consulte [Enviar uma mensagem com atributos usando o Amazon SQS](sqs-using-send-message-with-attributes.md).

**nota**  
Não confunda atributos de *mensagem com atributos do sistema* de mensagens: embora você possa usar atributos de mensagem para anexar metadados personalizados às mensagens do Amazon SQS para seus aplicativos, você pode [usar atributos do sistema de mensagens](#sqs-message-system-attributes) para armazenar metadados para AWS outros serviços, como. AWS X-Ray

**Topics**
+ [Componentes de atributos de mensagem](#message-attribute-components)
+ [Tipos de dados de atributos de mensagem](#message-attribute-data-types)
+ [Calculando o resumo da MD5 mensagem para os atributos da mensagem](#sqs-attributes-md5-message-digest-calculation)

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

**Importante**  
Todos os componentes de um atributo de mensagem estão incluídos na restrição de tamanho de 1 MiB da mensagem.  
O `Name`, `Type`, `Value` e o corpo da mensagem não devem estar vazios ou serem nulos.

Cada atributo de mensagem consiste nos seguintes componentes:
+ **Nome**: o nome do atributo da mensagem pode conter os seguintes caracteres: `A`-`Z`, `a`-`z`, `0`-`9`, sublinhado (`_`), hífen (`-`), e ponto (`.`). As seguintes restrições são aplicáveis:
  + Pode ter até 256 caracteres
  + Não pode começar com `AWS.` ou `Amazon.` (ou qualquer variação no uso de maiúsculas e minúsculas)
  + Diferencia maiúsculas de minúsculas
  + Deve ser exclusivo entre todos os nomes de atributos da mensagem
  + Não deve começar ou terminar com um ponto
  + Não deve ter pontos em uma sequência
+ **Tipo**: o tipo de dados do atributo da mensagem. Os tipos compatíveis incluem `String`, `Number` e `Binary`. Você também pode adicionar informações personalizadas para qualquer tipo de dados. O tipo de dados tem as mesmas restrições que o corpo da mensagem (para obter mais informações, consulte `[SendMessage](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessage.html)` na *Referência da API do Amazon Simple Queue Service*). Além disso, aplicam-se as seguintes restrições:
  + Pode ter até 256 caracteres
  + Diferencia maiúsculas de minúsculas
+ **Valor**: o valor do atributo da mensagem. Para tipos de dados `String`, os valores dos atributos têm as mesmas restrições que o corpo da mensagem.

### Tipos de dados de atributos de mensagem
<a name="message-attribute-data-types"></a>

Os tipos de dados de atributos de mensagens indicam ao Amazon SQS como tratar valores de atributos de mensagens correspondentes. Por exemplo, se o tipo for `Number`, o Amazon SQS validará valores numéricos.

O Amazon SQS é compatível com os tipos de dados lógicos `String`, `Number` e `Binary` com rótulos de tipos de dados personalizados opcionais com o formato `.custom-data-type`
+ **String**: os atributos `String` podem armazenar texto Unicode usando quaisquer caracteres XML válidos.
+ **Número**: os atributos `Number` podem armazenar valores numéricos positivos ou negativos. Um número pode ter até 38 dígitos de precisão, e pode ser entre 10^-128 e 10^\$1126.
**nota**  
O Amazon SQS remove zeros iniciais e finais.
+ **Binário**: os atributos binários podem armazenar qualquer dado binário, como dados compactados, dados criptografados ou imagens.
+ **Personalizado**: para criar um tipo de dado personalizado, acrescente um rótulo de tipo personalizado a qualquer tipo de dado. Por exemplo:
  + `Number.byte`, `Number.short`, `Number.int` e `Number.float` podem ajudar a diferenciar entre tipos numéricos.
  + `Binary.gif` e `Binary.png` podem ajudar a diferenciar entre tipos de arquivos.
**nota**  
O Amazon SQS não interpreta, valida ou usa os dados anexados.  
O rótulo de tipo personalizado tem as mesmas restrições que o corpo da mensagem.

### Calculando o resumo da MD5 mensagem para os atributos da mensagem
<a name="sqs-attributes-md5-message-digest-calculation"></a>

Se você usar o AWS SDK para Java, você pode pular esta seção. A `MessageMD5ChecksumHandler` classe do SDK for Java MD5 suporta resumos de mensagens para atributos de mensagem do Amazon SQS.

Se você usar a API de consulta ou uma das AWS SDKs que não suporta resumos de MD5 mensagens para atributos de mensagens do Amazon SQS, você deve usar as diretrizes a seguir para realizar o cálculo do resumo MD5 da mensagem.

**nota**  
Sempre inclua sufixos de tipo de dados personalizados no cálculo do resumo da MD5 mensagem.

#### Visão geral do
<a name="attributes-md5-message-digest-calculation-overview"></a>

Veja a seguir uma visão geral do algoritmo de cálculo do resumo da MD5 mensagem:

1. Classificar todos os atributos de mensagem por nome em ordem crescente.

1. Codificar as partes individuais de cada atributo (`Name`, `Type` e `Value`) em um buffer.

1. Calcular o resumo de mensagem de todo o buffer.

O diagrama a seguir mostra a codificação do resumo da MD5 mensagem para um único atributo de mensagem:

![\[Codificação do resumo da MD5 mensagem para um único atributo de mensagem.\]](http://docs.aws.amazon.com/pt_br/AWSSimpleQueueService/latest/SQSDeveloperGuide/images/sqs-msg-attrib-md5.png)


#### Para codificar um único atributo de mensagem do Amazon SQS
<a name="attributes-md5-message-digest-calculation-encode-single-attribute"></a>

1. Codifique o nome: o comprimento (4 bytes) e os bytes UTF-8 do nome.

1. Codifique o tipo de dados: o comprimento (4 bytes) e os bytes UTF-8 do tipo de dados.

1. Codifique o tipo de transporte (`String` ou `Binary`) do valor (1 byte).
**nota**  
Os tipos de dados lógicos `String` e `Number` usam o tipo de transporte `String`.  
Os tipos de dados lógicos `Binary` usam o tipo de transporte `Binary`.

   1. Para o tipo de transporte `String`, codifique 1.

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

1. Codifique o valor do atributo.

   1. Para o tipo de transporte `String`, codifique o valor do atributo: o comprimento (4 bytes) e os bytes UTF-8 do valor.

   1. Para o tipo de transporte `Binary`, codifique o valor do atributo: o comprimento (4 bytes) e os bytes brutos do valor.

## Atributos do sistema de mensagens do Amazon SQS
<a name="sqs-message-system-attributes"></a>

Enquanto é possível usar [atributos de mensagens](#sqs-message-attributes) para anexar metadados personalizados a mensagens do Amazon SQS para suas aplicações, é possível usar *atributos do sistema de mensagens* a fim de armazenar metadados para outros produtos da AWS , como o AWS X-Ray. Para obter mais informações, consulte o parâmetro de solicitação `MessageSystemAttribute` das ações de API de `[SendMessage](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessage.html)` e `[SendMessageBatch](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessageBatch.html)`, o atributo `AWSTraceHeader` da ação de API `[ReceiveMessage](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_ReceiveMessage.html)` e o tipo de dado `[MessageSystemAttributeValue](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_MessageSystemAttributeValue.html)` na *Referência da API do Amazon Simple Queue Service*.

Os atributos do sistema de mensagens são estruturados exatamente como atributos de mensagens, com as seguintes exceções:
+ Atualmente, o único atributo do sistema de mensagens compatível é `AWSTraceHeader`. Seu tipo deve ser `String` e seu valor deve ser uma string de cabeçalho de AWS X-Ray rastreamento formatada corretamente.
+ O tamanho de um atributo do sistema de mensagens não entra na contagem para o tamanho total de uma mensagem.