DEV Community

Cover image for Construindo Integrações Serverless Sem Código na AWS
Marcos Belorio
Marcos Belorio

Posted on • Edited on

Construindo Integrações Serverless Sem Código na AWS

Olá, pessoal! Nesse artigo eu pretendo mostrar uma forma interessante de se trabalhar com integrações serverless na AWS. Vamos modificar uma integração tradicionalmente utilizada na AWS utilizando Lambda para uma integração sem código.

O Cenário Inicial: A Arquitetura Clássica

Quando iniciamos no mundo serverless na AWS fazemos uma arquitetura típica usando Lambda, como por exemplo o fluxo abaixo:

  1. Uma requisição chega no API Gateway
  2. O API Gateway aciona uma função Lambda
  3. A Lambda processa e envia para uma fila SQS

API Gateway e Lambda

Parece familiar, não é? É aquela arquitetura que vemos em praticamente todos os tutoriais serverless por aí.

A Descoberta: Integrações Nativas

Mas aí veio aquele momento "aha!" que todo desenvolvedor adora. Durante uma palestra no AWS Summit São Paulo 2023 que eu participei, foi apresentado como o API Gateway da AWS pode se integrar com outros serviços diretamente sem a necessidade de processamento computacional, como por exemplo, uma Lambda. Isso significa que podemos fazer nossa API se comunicar diretamente com o SQS, sem precisar de código!

API Gateway e SQS

Vantagens e Desvantagens Dessa Solução

Vantagens

  • Simplicidade e Menos Código: Reduz a quantidade de serviços e a manutenção de código, já que não existe código hehehe.
  • Baixa Latência: Como a integração é direta, a latência da requisição é menor em comparação com uma requisição API → Lambda → SQS. (Não vai mais precisar se preocupar com o cold start da Lambda).
  • Custo: Sem custos de processamento computacional, você paga apenas pelo API Gateway e pelo SQS. (Aqui existe um disclaimer, o API Gateway deve ser do tipo API REST para essa integração direta com o SQS poder ocorrer, esse tipo de API Gateway é mais caro porém provê outros recursos adicionais. Se os demais recursos não fizerem sentido para a sua solução, usar a combinação API Gateway tipo API HTTP → Lambda → SQS possa ficar mais barato hehehe).

Desvantagens

  • Sem Processamento ou Validação: Não é possível validar, processar, modificar ou enriquecer os dados antes de enviá-los.
  • Limitação no tamanho do payload: O SQS suporta mensagens de até 256 kb.

Como Configurar

Se você ficou interessado pela solução e quer testar ela, este vídeo da própria AWS ensina como criar e configurar um api gateway com SQS no console da cloud.

Considerações Finais: Quando Usar?

Eu particularmente gosto de utilizar essa solução em cenários onde a API deve retornar o status code 202 (Accepted), ou seja, quando a requisição é recebida com sucesso, mas o processamento será feito de forma assíncrona. E você? enxerga algum outro cenário onde essa solução se aplica bem?

Ficou com alguma dúvida? Quer compartilhar suas experiências com integrações serverless? Deixe nos comentários - adoraria saber sua opinião!

Top comments (0)