Entrega de mensagens brutas do Amazon SNS - 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á.

Entrega de mensagens brutas do Amazon SNS

Para evitar que o Fanout de fluxos de entrega do Firehose, o Amazon SQS e os endpoints HTTP/S processem a formatação JSON das mensagens, o Amazon SNS permite a entrega de mensagens brutas:

  • Ao habilitar a entrega de mensagens brutas para um endpoint do Amazon SQS, todos os metadados do Amazon SNS são removidos da mensagem publicada e a mensagem é enviada como está.

  • Quando você habilita a entrega de mensagens brutas para endpoints HTTP/S, o cabeçalho HTTP x-amz-sns-rawdelivery com o valor definido como true é adicionado à mensagem, indicando que a mensagem foi publicada sem formatação JSON.

  • Quando você habilita a entrega de mensagens brutas para endpoints HTTP/S, o corpo da mensagem, o IP do cliente e os cabeçalhos necessários são entregues. Quando você especifica atributos de mensagem, ela não é enviada.

  • Quando você habilita a entrega de mensagens brutas para endpoints do Firehose, o corpo da mensagem é entregue. Quando você especifica atributos de mensagem, ela não é enviada.

Para habilitar a entrega de mensagens brutas usando um AWS SDK, é necessário usar a ação da API SetSubscriptionAttribute e definir o valor do atributo RawMessageDelivery como true.

Habilitar a entrega de mensagens brutas usando o Console de gerenciamento da AWS

  1. Faça login no console do Amazon SNS.

  2. No painel de navegação, escolha Tópicos.

  3. Na página Tópicos, escolha um tópico assinado para um endpoint HTTP/S, do Firehose ou do Amazon SQS.

  4. Na página Meu tópico, na seção Inscrição, selecione uma inscrição e escolha Editar.

  5. Na página Editar EXAMPLE1-23bc-4567-d890-ef12g3hij456, na seção Detalhes, escolha Habilitar a entrega de mensagens brutas.

  6. Escolha Salvar alterações.

Exemplos de formatos de mensagens

Nos exemplos a seguir, a mesma mensagem é enviada para a mesma fila do Amazon SQS duas vezes. A única diferença é que a entrega de mensagens brutas está desabilitada para a primeira mensagem e habilitada para a segunda.

  • Entrega de mensagens brutas desabilitada

    { "Type": "Notification", "MessageId": "dc1e94d9-56c5-5e96-808d-cc7f68faa162", "TopicArn": "arn:aws:sns:us-east-2:111122223333:ExampleTopic1", "Subject": "TestSubject", "Message": "This is a test message.", "Timestamp": "2021-02-16T21:41:19.978Z", "SignatureVersion": "1", "Signature": "FMG5tlZhJNHLHUXvZgtZzlk24FzVa7oX0T4P03neeXw8ZEXZx6z35j2FOTuNYShn2h0bKNC/zLTnMyIxEzmi2X1shOBWsJHkrW2xkR58ABZF+4uWHEE73yDVR4SyYAikP9jstZzDRm+bcVs8+T0yaLiEGLrIIIL4esi1llhIkgErCuy5btPcWXBdio2fpCRD5x9oR6gmE/rd5O7lX1c1uvnv4r1Lkk4pqP2/iUfxFZva1xLSRvgyfm6D9hNklVyPfy+7TalMD0lzmJuOrExtnSIbZew3foxgx8GT+lbZkLd0ZdtdRJlIyPRP44eyq78sU0Eo/LsDr0Iak4ZDpg8dXg==", "SigningCertURL": "https://sns.us-east-2.amazonaws.com/SimpleNotificationService-010a507c1833636cd94bdb98bd93083a.pem", "UnsubscribeURL": "https://sns.us-east-2.amazonaws.com/?Action=Unsubscribe&SubscriptionArn=arn:aws:sns:us-east-2:111122223333:ExampleTopic1:e1039402-24e7-40a3-a0d4-797da162b297" }
  • Entrega de mensagens brutas habilitada

    This is a test message.

Atributos de mensagem e entrega de mensagens brutas para assinaturas do Amazon SQS

O Amazon SNS oferece suporte à entrega de atributos de mensagem, o que permite que você forneça itens de metadados estruturados, como time stamps, dados geoespaciais, assinaturas e identificadores sobre a mensagem. Para assinaturas Amazon SQS, com Entrega de mensagens brutas habilitado, no máximo dez atributos de mensagem podem ser enviados. Para enviar mais de dez atributos de mensagem, é necessário desabilitar Entrega de mensagens brutas. Porém, o Amazon SNS descarta mensagens com mais de 10 atributos de mensagem direcionadas para assinaturas do Amazon SQS com Entrega de mensagens brutas habilitadas, tratando elas como erros do lado do cliente.