Um desenvolvedor criou um microsserviço que usa o AWS Lambda para processar mensagens de uma fila padrão do Amazon SQS. A função Lambda enriquece cada mensagem SQS chamando APIs externas e, em seguida, grava os dados em uma tabela do Amazon Redshift. A fila deve suportar até 1.000 mensagens por segundo. Durante os testes, linhas duplicadas foram inseridas repetidamente na tabela do Redshift porque mensagens SQS duplicadas foram processadas; todas as mensagens duplicadas foram enfileiradas dentro de 1 minuto uma da outra. Como o desenvolvedor deve corrigir esse problema?
Escolha uma resposta
Toque em uma opção para verificar sua resposta.
Resposta correta: Mudar para uma fila SQS FIFO e habilitar a desduplicação de mensagens nessa fila FIFO..
Por que esta é a resposta
A duplicação de mensagens dentro de 1 minuto uma da outra é um cenário clássico para o qual as filas SQS FIFO (First-In, First-Out) com desduplicação são projetadas. Ao mudar para uma fila FIFO e habilitar a desduplicação, o SQS garante que as mensagens enviadas dentro da janela de desduplicação (padrão de 5 minutos) com o mesmo corpo de mensagem ou ID de desduplicação de mensagem não sejam entregues mais de uma vez. Diminuir a concorrência da função Lambda não resolveria o problema de duplicação, pois as mensagens duplicadas ainda seriam processadas, apenas mais lentamente. Usar o armazenamento local temporário da função Lambda (/tmp) para rastrear IDs de mensagem não é escalável nem durável, pois o estado é perdido entre as invocações e entre diferentes instâncias da função. Atribuir um ID de grupo de mensagens a cada mensagem é uma funcionalidade das filas FIFO, mas não habilita a desduplicação em uma fila padrão do SQS; a desduplicação é um recurso específico das filas FIFO.
Passe no seu exame — sem a busca interminável por respostas
Obtenha todas as perguntas e explicações verificadas para este exame em um só lugar e economize horas de preparação. Mais de 1.000 certificações · Mais de 20 idiomas · Grátis para começar.
Passe no seu exame mais rápido → Não é necessário cartão