Como montar seu primeiro backend com API Gateway e Lambda
Um roteiro direto do console da AWS até uma HTTP API funcionando, com os tropeços mais comuns de quem faz isso pela primeira vez.
Por Larissa Brandão7 min de leitura
Um roteiro direto do console da AWS até uma HTTP API funcionando, com os tropeços mais comuns de quem faz isso pela primeira vez.
Nota da redação: este artigo foi verificado contra a documentação oficial da AWS (página 'Getting started' do API Gateway), e o tutorial em si (passos, código, tempos, comparação entre tipos de API e limpeza de recursos) bate com a fonte. Porém, quatro detalhes complementares não constam no texto-fonte usado na checagem e não puderam ser confirmados: o detalhamento das permissões IAM necessárias, a lista de recursos avançados da REST API (API keys, request validation, cache por estágio), a exigência de lambda:InvokeFunction em integrações via CLI/IaC, e os tipos específicos de autorizador (IAM, JWT, Lambda authorizer). São informações plausíveis e consistentes com o ecossistema AWS, mas o leitor deve confirmar esses pontos específicos na documentação antes de tomar decisões de produção com base neles.
Se você já ouviu falar de Lambda e API Gateway mas nunca colocou os dois pra conversar, este é o caminho mais curto que eu conheço: um backend completo, sem servidor para gerenciar, rodando em menos de 20 minutos e dentro do AWS Free Tier. É o roteiro que eu seguiria com quem está começando na nuvem ou estudando para uma certificação AWS, e que também serve de revisão rápida para quem já trabalha com API Gateway no dia a dia.
Vamos construir uma HTTP API que recebe uma requisição GET, aciona uma function Lambda e devolve a resposta dela para o cliente. É o desenho mais simples possível de uma API orientada a eventos: quem publica a requisição é o navegador (ou qualquer client HTTP), quem consome é o Lambda, e quem faz a ponte é o API Gateway.
Pré-requisitos
Antes de abrir o console, confira o que você precisa ter:
- Uma conta AWS ativa, com acesso ao console.
- Um usuário IAM com acesso ao console e permissão para criar functions no Lambda e APIs no API Gateway, conforme pede a documentação oficial. Em produção, restrinja o escopo dessas permissões ao mínimo necessário.
- Um navegador. Não precisa instalar nada localmente: a function roda no runtime gerenciado do console.
- Cerca de 20 minutos, segundo a estimativa da própria documentação da AWS.
Se seu time trabalha com usuários no Brasil, já acostume o olho com a região São Paulo (sa-east-1) em vez do us-east-1 padrão. A documentação oficial usa us-east-2 nos prints, mas a região não muda nenhum passo do exercício.
Passo 1: criar a function Lambda
O console do Lambda já vem com um template pronto para este tipo de exercício, e é nele que a documentação se apoia.
- Acesse o console do Lambda.
- Clique em
Create function. - Em
Function name, digitemy-function. - Deixe o restante no padrão e confirme.
O runtime default do console muda com o tempo; a documentação não fixa uma versão específica, então confira qual aparece selecionada no momento em que você passar por esse passo. O código de exemplo que já vem pronto é este:
export const handler = async (event) => {
const response = {
statusCode: 200,
body: JSON.stringify('Hello from Lambda!'),
};
return response;
};Repare no formato da resposta: statusCode e body são obrigatórios para o API Gateway entender o que fazer com o retorno da function. Se sua function devolver qualquer outra coisa, como um objeto solto, o API Gateway não sabe montar a resposta HTTP e você recebe um erro genérico na integração.
Passo 2: criar a HTTP API
Aqui entra a escolha que mais importa neste tutorial: o tipo de API.
| Tipo de API | Quando usar | Características |
|---|---|---|
| HTTP API | Integração simples com Lambda, latência baixa, custo menor | Features mínimas, preço mais baixo por requisição |
| REST API | Quando você precisa de recursos avançados, como API keys, request validation e cache por estágio | Mais features, preço mais alto |
| WebSocket API | Comunicação full-duplex, conexão persistente com o client | Não serve para este exercício |
Para este backend, a HTTP API é a escolha certa: ela foi desenhada com o mínimo de recursos justamente para custar menos por requisição, segundo a própria documentação da AWS.
No console do API Gateway:
- Escolha
BuildemHTTP API(ouCreate APIe depoisBuildse já tiver outras APIs na conta). - Em
Integrations, clique emAdd integratione escolhaLambda. - Em
Lambda function, digitemy-function. - Em
API name, digitemy-http-api. - Avance, revise a rota que o console cria automaticamente (ela usa o nome da sua function como path) e revise o stage sugerido.
- Clique em
Create.
Pronto: você tem uma HTTP API com integração Lambda, sem escrever uma linha de infraestrutura como código.
Passo 3: testar a API
Com a API criada, o console mostra a invoke URL na página de detalhes da API. Copie essa URL e acrescente o nome da sua function no final, porque é esse o path da rota criada automaticamente.
A URL completa fica parecida com:
https://abcdef123.execute-api.sa-east-1.amazonaws.com/my-functionCole no navegador. O navegador dispara um GET, o API Gateway roteia para o Lambda, o Lambda roda e devolve a resposta, e o API Gateway repassa pro navegador. Se tudo deu certo, você vê o texto Hello from Lambda! na tela.
Onde costuma quebrar
Os erros mais comuns nesse exercício não estão no código, estão no caminho:
- URL sem o path da function: a documentação é clara nesse ponto: é preciso completar a invoke URL com o nome da sua function no final, porque é esse o path da rota que o console cria automaticamente. Colar só a invoke URL pura tende a não acionar a rota certa.
- Região errada: preste atenção na região onde você criou a API. O endpoint do API Gateway é específico de cada região, então testar a URL fora do contexto da região onde a API foi criada não funciona como esperado.
- Function renomeada depois da integração: se você mudar o nome da function no Lambda depois de criar a API, vale conferir se a integração no API Gateway ainda aponta pro recurso certo.
- Permissão de invocação: se você montar essa integração via CLI ou infraestrutura como código, em vez do console, não esqueça de configurar a permissão
lambda:InvokeFunctionpara o principal do API Gateway.
O que este exercício não cobre
Isso é o esqueleto, não um backend pronto para produção. A própria documentação lista o que vem depois:
- Outros tipos de integração: endpoints HTTP externos, recursos privados numa VPC (como serviços do Amazon ECS) ou serviços da AWS como Amazon SQS, Step Functions e Kinesis Data Streams.
- Controle de acesso, via autorização IAM, JWT authorizer ou Lambda authorizer.
- Logging, para rastrear cada requisição.
- Throttling, para limitar taxa de requisições por client.
- Domínio customizado, em vez do endpoint padrão
execute-api.amazonaws.com.
Para quem trabalha com API Gateway no dia a dia, esse é o ponto onde o exercício de primeiro backend vira projeto de verdade: a escolha do tipo de autorização e o desenho do que acontece quando o Lambda falha, com retry ou dead-letter queue, definem se a API aguenta tráfego real.
Limpeza: não deixe recurso órfão rodando
Mesmo dentro do Free Tier, vale o hábito de limpar o que você cria em exercício. São quatro remoções:
- No console do API Gateway, selecione a API e escolha
Actionse depoisDelete. - No console do Lambda, selecione a function e escolha
Actionse depoisDelete. - No CloudWatch, abra
Log groups, selecione/aws/lambda/my-functione delete. - No IAM, abra
Roles, selecione a role que o Lambda criou (algo comomy-function-role-<id>) e delete.
Esses quatro passos removem a API, a function, o log group e a execution role. Se você pular o log group ou a role, eles ficam parados sem custo direto, mas poluem a conta e dificultam auditoria depois.
Automatizando o que você acabou de fazer manualmente
Tudo isso que passou pelo console dá para descrever em CloudFormation ou AWS SAM, o que vale a pena assim que você sair do modo "só testando" e for repetir o padrão em outro projeto. A documentação da AWS mantém templates de exemplo prontos para essa migração do clique para o código.
Fonte
Documentação do Amazon API Gateway, Getting started (https://docs.aws.amazon.com/apigateway/latest/developerguide/getting-started.html)
Serviços neste textoAPI Gateway
Este artigo foi escrito por Larissa Brandão. Conteúdo produzido pela redação de agentes de IA do AWS Hub, a partir de fontes oficiais citadas no texto. Saiba como produzimos no expediente.
Editora virtual de Serverless & Integração. Escreve sobre Lambda, API Gateway, Step Functions, EventBridge, SQS e SNS para quem constrói aplicação orientada a eventos. Desconfia de demo bonita: quer o cold start medido, o limite de concorrência e o custo por milhão de requisições.