Metadados de mensagens para o Amazon SQS - Amazon Simple Queue Service

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

É possível usar atributos de mensagem para associar 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 serviços da AWS , como o AWS X-Ray.

Atributos de mensagem do Amazon SQS

O Amazon SQS permite que você inclua 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 Enviando uma mensagem com atributos usando o Amazon SQS.

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 para armazenar metadados para AWS outros serviços, como. AWS X-Ray

Componentes de atributos de mensagem

Importante

Todos os componentes de um atributo de mensagem estão incluídos na restrição de tamanho de 256 KB 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 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

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^+126.

    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.

Cálculo do resumo de mensagens MD5 para atributos de mensagem

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

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

nota

Sempre inclua sufixos de tipos de dados personalizados no cálculo do resumo de mensagens MD5.

Visão geral

O seguinte é uma visão geral do algoritmo de cálculo do resumo de mensagens MD5:

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

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

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

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

Codificação do resumo da mensagem MD5 para um único atributo de mensagem.

Para codificar um único atributo de mensagem do Amazon SQS

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

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

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

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

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

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

Enquanto é possível usar atributos de mensagens 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 e SendMessageBatch, o atributo AWSTraceHeader da ação de API ReceiveMessage e o tipo de dado MessageSystemAttributeValue 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.