Filas de SNS cartas mortas 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á.

Filas de SNS cartas mortas da Amazon

Uma fila de cartas mortas é uma fila da Amazon SQS que uma SNS assinatura da Amazon pode direcionar para mensagens que não podem ser entregues aos assinantes com sucesso. As mensagens que não podem ser entregues devido a erros do cliente ou erros do servidor são mantidas na fila de mensagens mortas para análise ou reprocessamento adicionais. Para ter mais informações, consulte Configurando uma fila de mensagens SNS mortas da Amazon para uma assinatura e Tentativas de entrega de SNS mensagens da Amazon.

nota
  • A SNS assinatura da Amazon e a SQS fila da Amazon devem estar na mesma AWS conta e região.

  • Para um FIFOtópico, você pode usar uma SQS fila da Amazon como uma fila de cartas mortas para a assinatura da Amazon. SNS FIFOas assinaturas de tópicos usam FIFO filas e as assinaturas de tópicos padrão usam filas padrão.

  • Para usar uma fila criptografada da Amazon como SQS fila de mensagens sem saída, você deve usar uma política personalizada KMS com uma política de chaves que conceda ao principal SNS serviço da Amazon acesso às ações. AWS KMS API Para obter mais informações, consulte este guia Proteção de SQS dados da Amazon usando criptografia Protegendo os SNS dados da Amazon com criptografia do lado do servidor no lado do servidor (SSE) e AWS KMS no Guia do desenvolvedor do Amazon Simple Queue Service.

Por que há falha nas entregas de mensagens?

Em geral, a entrega de mensagens falha quando a Amazon não SNS consegue acessar um endpoint inscrito devido a um erro do lado do cliente ou do servidor. Quando a Amazon SNS recebe um erro do lado do cliente ou continua recebendo um erro do lado do servidor para uma mensagem além do número de tentativas especificado pela política de repetição correspondente, a Amazon SNS descarta a mensagem, a menos que uma fila de mensagens mortas seja anexada à assinatura. Entregas com falha não alteram o status de suas inscrições. Para obter mais informações, consulte Tentativas de entrega de SNS mensagens da Amazon.

Erros no lado do cliente,

Erros do lado do cliente podem ocorrer quando a Amazon SNS tem metadados de assinatura obsoletos. Esses erros geralmente ocorrem quando um proprietário exclui o endpoint (por exemplo, uma função Lambda inscrita em um tópico da SNS Amazon) ou quando um proprietário altera a política anexada ao endpoint inscrito de uma forma que impede a SNS Amazon de entregar mensagens ao endpoint. A Amazon SNS não repete a entrega da mensagem que falha como resultado de um erro do lado do cliente.

Erros no lado do servidor

Erros do lado do servidor podem ocorrer quando o sistema responsável pelo endpoint inscrito fica indisponível ou retorna uma exceção que indica que ele não pode processar uma solicitação válida da Amazon. SNS Quando ocorrem erros do lado do servidor, a Amazon SNS repete as entregas com falha usando uma função de recuo linear ou exponencial. Para erros do lado do servidor causados por endpoints AWS gerenciados apoiados pela Amazon ouSQS, AWS Lambda a Amazon SNS tenta novamente a entrega até 100.015 vezes, em 23 dias.

Os endpoints gerenciados pelo cliente (como HTTPSMTP,SMS, ou mobile push) também podem causar erros no servidor. A Amazon também SNS tenta novamente a entrega para esses tipos de endpoints. Embora HTTP os endpoints ofereçam suporte a políticas de repetição definidas pelo cliente, a Amazon SNS define uma política interna de repetição de entrega para 50 vezes em 6 horas SMTPSMS, para endpoints push móveis.

Como as filas de mensagens mortas funcionam?

Uma fila de mensagens mortas é anexada a uma SNS assinatura da Amazon (em vez de um tópico) porque as entregas de mensagens acontecem no nível da assinatura. Isso permite identificar o endpoint de destino original para cada mensagem com mais facilidade.

Uma fila de mensagens sem saída associada a uma SNS assinatura da Amazon é uma fila comum da Amazon. SQS Para obter mais informações sobre o período de retenção de mensagens, consulte Quotas Related to Messages (“Cotas relacionadas a mensagens”) no Guia do desenvolvedor do Amazon Simple Queue Service. Você pode alterar o período de retenção de mensagens usando a SQS SetQueueAttributes API ação da Amazon. Para tornar seus aplicativos mais resilientes, recomendamos definir o período máximo de retenção para filas de mensagens mortas como 14 dias.

Como as mensagens são movidas para uma fila de mensagens mortas?

As mensagens são movidas para uma fila de mensagens mortas por meio de uma política de redirecionamento. Uma política de redrive é um JSON objeto que se refere à fila ARN de mensagens mortas. O deadLetterTargetArn atributo especifica o. ARN Eles ARN devem apontar para uma SQS fila da Amazon na mesma Conta da AWS região da sua SNS assinatura da Amazon. Para obter mais informações, consulte Configurando uma fila de mensagens SNS mortas da Amazon para uma assinatura.

O JSON objeto a seguir é um exemplo de política de redirecionamento, anexado a uma SNS assinatura.

{ "deadLetterTargetArn": "arn:aws:sqs:us-east-2:123456789012:MyDeadLetterQueue" }

Como posso mover mensagens de uma fila de mensagens mortas?

É possível mover mensagens para fora de uma fila de mensagens mortas de duas maneiras:

  • Evite escrever a lógica de SQS consumo da Amazon — defina sua fila de mensagens mortas como uma fonte de eventos para a função Lambda para drenar sua fila de mensagens mortas.

  • Escreva a lógica SQS do consumidor da Amazon — Use a Amazon SQS API AWS SDK,, ou AWS CLI para escrever uma lógica de consumidor personalizada para pesquisar, processar e excluir as mensagens na fila de mensagens mortas.

Como posso monitorar e registrar em log filas de mensagens mortas?

Você pode usar CloudWatch as métricas da Amazon para monitorar filas de cartas mortas associadas às suas assinaturas da Amazon. SNS Todas as SQS filas da Amazon emitem CloudWatch métricas em intervalos de um minuto. Para obter mais informações, consulte CloudWatch Métricas disponíveis para a Amazon SQS no Guia do desenvolvedor do Amazon Simple Queue Service. Todas as SNS assinaturas da Amazon com filas de cartas sem saída também emitem métricas. CloudWatch Para obter mais informações, consulte Monitorando SNS tópicos da Amazon usando CloudWatch.

Para ser notificado sobre atividades em suas filas de cartas mortas, você pode usar CloudWatch métricas e alarmes. Configurar um alarme para a NumberOfMessagesSent métrica não é adequado porque essa métrica não captura mensagens enviadas para a DLQ como resultado de tentativas de processamento malsucedidas. Em vez disso, use a ApproximateNumberOfMessagesVisible métrica, que captura todas as mensagens atualmente disponíveis noDLQ, incluindo aquelas movidas devido a falhas de processamento.

Exemplo de configuração CloudWatch de alarme
  1. Crie um CloudWatchalarme para a ApproximateNumberOfMessagesVisible métrica.

  2. Defina o limite do alarme como 1 (ou outro valor apropriado com base em suas expectativas e DLQ tráfego).

  3. Especifique um SNS tópico da Amazon para ser notificado quando o alarme disparar. Este SNS tópico da Amazon pode enviar sua notificação de alarme para qualquer tipo de endpoint (como endereço de e-mail, número de telefone ou aplicativo de pager para celular).

Você pode usar o CloudWatch Logs para investigar as exceções que fazem com que qualquer SNS entrega da Amazon falhe e para que as mensagens sejam enviadas para filas de cartas mortas. A Amazon SNS pode registrar entregas bem-sucedidas e malsucedidas. CloudWatch Para obter mais informações, consulte SNSAtributos do aplicativo móvel Amazon.