Atributos de SNS mensagem da Amazon - Amazon Simple Notification 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á.

Atributos de SNS mensagem da Amazon

A Amazon SNS oferece suporte à entrega de atributos de mensagem, que permitem que você forneça itens de metadados estruturados (como timestamps, dados geoespaciais, assinaturas e identificadores) sobre a mensagem. Para SQS assinaturas, no máximo 10 atributos de mensagem podem ser enviados quando a Entrega de Mensagens Brutas está ativada. Para enviar mais de dez atributos de mensagem, é necessário desabilitar Raw Message Delivery (Entrega de mensagens brutas). Mensagens com mais de 10 atributos de mensagem direcionadas às SQS assinaturas da Amazon habilitadas para entrega de mensagens brutas serão descartadas como erros do lado do cliente.

Os atributos de mensagem são opcionais e separados do corpo da mensagem, mas são enviados junto com ele. O destinatário pode usar essas informações para decidir como lidar com ela sem ter de primeiro processar o corpo da mensagem.

Para obter informações sobre o envio de mensagens com atributos usando o AWS Management Console ou o AWS SDK for Java, consulte o Para publicar mensagens em SNS tópicos da Amazon usando o AWS Management Console tutorial.

nota

Os atributos da mensagem são enviados somente quando a estrutura da mensagem é String, nãoJSON.

Também é possível usar atributos de mensagem para ajudar a estruturar a mensagem de notificação por push para endpoints móveis. Nesse cenário, os atributos de mensagens são usados somente para ajudar a estruturar a mensagem de notificação por push. Os atributos não são entregues ao endpoint, como acontece ao enviar mensagens com atributos de mensagem para SQS endpoints da Amazon.

Você também pode usar atributos de mensagens para que suas mensagens possam ser filtradas usando políticas de filtro de assinatura. Você pode aplicar as políticas de filtro a inscrições em tópicos. Quando uma política de filtro é aplicada com o escopo de políticas de filtro definido como MessageAttributes (padrão), uma assinatura recebe somente aquelas mensagens que têm atributos aceitos pela política. Para obter mais informações, consulte SNSFiltragem de mensagens da Amazon.

nota

Quando os atributos da mensagem são usados para filtragem, o valor deve ser uma JSON string válida. Isso garante que a mensagem seja entregue a uma assinatura com a filtragem de atributos de mensagem ativada.

Validação e itens de atributos de mensagem

Cada atributo de mensagem consiste nos seguintes itens:

  • Nome: o nome do atributo de mensagem pode conter os seguintes caracteres: A-Z, a-z, 0-9, sublinhado (_), hífen (-) e ponto (.). O nome não deve iniciar ou terminar com um ponto, e nem ter pontos sucessivos. O nome diferencia maiúsculas e minúsculas e deve ser exclusivo entre todos os nomes de atributos para a mensagem. O nome pode ter até 256 caracteres. O nome não pode começar com AWS. ou Amazon. (ou quaisquer variações em maiúsculas e minúsculas) porque esses prefixos são reservados para uso da Amazon Web Services.

  • Tipo: os tipos de dados de atributo de mensagem compatíveis são String, String.Array, Number e Binary. O tipo de dados tem as mesmas restrições no conteúdo que o corpo da mensagem. Para obter mais informações, consulte a seção Tipos de dados de atributo de mensagem e validação.

  • Valor: o valor do atributo de mensagem especificado pelo usuário. Para tipos de dados de string, o atributo de valor tem as mesmas restrições no conteúdo que o corpo da mensagem. Para obter mais informações, consulte a ação Publish na Amazon Simple Notification Service API Reference.

Nome, tipo e valor não podem estar vazios ou nulos. Além disso, o corpo da mensagem não pode estar vazio ou nulo. Todas as partes do atributo da mensagem, incluindo o nome, o tipo e o valor, são incluídas na restrição de tamanho da mensagem, que é de 256 KB.

Tipos de dados de atributo de mensagem e validação

Os tipos de dados do atributo da mensagem identificam como os valores dos atributos da mensagem são tratados pela AmazonSNS. Por exemplo, se o tipo for um número, a Amazon SNS valida que é um número.

A Amazon SNS oferece suporte aos seguintes tipos de dados lógicos para todos os endpoints, exceto conforme indicado:

  • String — As strings são Unicode com codificação binária UTF -8. Para obter uma lista de valores de código, consulte http://en.wikipedia. org/wiki/ASCII# ASCII _caracteres_imprimíveis.

    nota

    Valores substitutos não são aceitos nos atributos da mensagem. Por exemplo, usar um valor substituto para representar um emoji apresentará o seguinte erro: Invalid attribute value was passed in for message attribute.

  • String.Array: uma matriz, formatada como uma string, que pode conter vários valores. Os valores podem ser strings, números ou as palavras-chave true, falsee null. Um String.Array de número ou tipo booliano não precisa de aspas. Vários valores String.Array são separados por vírgulas.

    Esse tipo de dados não é compatível com AWS Lambda assinaturas. Se você especificar esse tipo de dados para endpoints Lambda, ele será passado como o tipo de String dados na JSON carga que a Amazon SNS entrega ao Lambda.

  • Number: números são inteiros positivos ou negativos ou com ponto flutuante. Números têm alcance e precisão suficientes para abranger a maioria dos possíveis valores que números inteiros, flutuantes e duplicados normalmente comportam. Um número pode ter um valor de -109 a 109, com 5 dígitos de precisão após o ponto decimal. Zeros iniciais e finais são cortados.

    Esse tipo de dados não é compatível com AWS Lambda assinaturas. Se você especificar esse tipo de dados para endpoints Lambda, ele será passado como o tipo de String dados na JSON carga que a Amazon SNS entrega ao Lambda.

  • Binary: os atributos de tipo binário podem armazenar qualquer dado binário, por exemplo, dados compactados, dados criptografados ou imagens.

Atributos de mensagens reservados para notificações móveis por push

A tabela a seguir lista os atributos de mensagens reservadas para serviços de notificação móvel por push que você pode usar para estruturar a mensagem de notificação por push:

Serviço de notificação por push Atributo de mensagem reservada
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

AWS.SNS.MOBILE.MPNS.Type

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 A Apple rejeitará SNS as notificações da Amazon se os atributos da mensagem não atenderem aos requisitos. Para obter detalhes adicionais, consulte Envio de solicitações de notificação para o APNs site de desenvolvedores da Apple.