AWS SQS e SNS para iniciantes

Mantenha tarefas disponíveis quando consumidores estiverem lentos ou falharem, notifique equipes seguintes e proteja resultados de negócio contra entregas repetidas. Aprenda SQS e SNS com um pequeno fluxo de processamento de pedidos.

AWS

💡 Este tutorial foi traduzido do inglês com assistência de IA. Para ver o original, você pode mudar para a versão em inglês

Introdução

Mantenha tarefas disponíveis quando consumidores estiverem lentos ou falharem, notifique equipes seguintes e proteja resultados de negócio contra entregas repetidas. Aprenda SQS e SNS com um pequeno fluxo de processamento de pedidos.

Cinco laboratórios guiados abordam consumo, visibilidade, filas de mensagens mortas, distribuição com SNS e proteção contra duplicatas. O desafio independente repara um incidente em que tarefas com falha nunca chegam à fila de recuperação.

O que você vai aprender

  • Enviar, receber, processar e confirmar tarefas do SQS
  • Observar janelas de visibilidade, novas entregas e identificadores de recebimento atuais
  • Isolar tarefas com falha em uma fila de mensagens mortas
  • Distribuir notificações do SNS para assinaturas filtradas do SQS
  • Usar gravações condicionais do DynamoDB para proteger uma operação de negócio repetida
  • Reparar o encaminhamento de tarefas com falha mantendo o trabalho saudável em andamento
  • Verificar resultados armazenados e remover apenas recursos que você criou

Para quem é este curso

Este curso é para quem está pronto para ampliar uma aplicação sem servidor com trabalho assíncrono e tratamento de falhas.

Pré-requisitos: Comece com acesso Lambda–DynamoDB (FN03) e seus pré-requisitos. Q01 → Q02 → Q03 ensinam processamento e isolamento de falhas. Q04 é um ramo SNS com políticas de recursos IAM; Q05 exige escritas condicionais DynamoDB (D04) e atualizações Lambda (FN02). O desafio segue Q03; PS02 também usa Q05.

Ambiente de aprendizagem: Todas as atividades são realizadas em um ambiente Linux do LabEx fornecido pelo navegador. Use Terminal para os comandos da AWS CLI e AWS View, ao lado do Terminal, para inspecionar o mesmo estado dos recursos e da aplicação. As ferramentas e a conexão já estão preparadas; você não precisa de uma conta AWS pessoal nem de chaves de acesso. Cada laboratório começa de forma independente em uma nova VM. AWS View mostra filas, corpos de mensagens, tentativas, logs, envelopes do SNS e pedidos armazenados. A observação somente leitura não recebe nem confirma mensagens.

Perguntas frequentes

Uma fila configurada comprova que tarefas são processadas?

Não. Verifique processamento real, resultados armazenados, mensagens de origem confirmadas e tarefas com falha preservadas. Processadores e dados de referência fornecidos permitem concentrar-se nesses resultados usando tarefas sintéticas.

Por que uma mensagem tem um novo identificador de recebimento?

Um identificador de recebimento pertence a uma entrega. Quando a visibilidade expira, outra tentativa pode ocorrer com um identificador atual. Use o identificador da entrega que pretende confirmar.

Proteção contra duplicatas significa entrega exatamente uma vez?

Não. Filas padrão podem entregar mais de uma vez. Uma gravação condicional de item único protege o efeito de negócio ensinado, mas operações da fila e gravações no banco são separadas; isso não é uma transação atômica nem uma garantia de exatamente uma vez de ponta a ponta.

Qual é o escopo dos exemplos de mensagens?

Filas padrão com consumidor que processa uma mensagem por vez, reprocessamento de mensagens mortas, distribuição SNS para SQS na mesma conta e filtros de atributos de mensagens. Ordenação FIFO, lotes arbitrários, vazão de produção, projeto de políticas entre contas e garantias completas de novas tentativas dos serviços estão fora do escopo.

Qual projeto vem depois deste curso?

Recover Poison Messages Without Duplicating Orders no curso de projeto Serverless. O desafio exige Q03 e seus pré-requisitos; o projeto também Q05. Verifique o funcionamento antes da limpeza.

Professor

labby
Labby
Labby is the LabEx teacher.