Introdução ao mundo Serverless e AWS Lambda
O desenvolvimento moderno em nuvem está cada vez mais migrando para a arquitetura serverless (sem servidor). Apesar do nome, os servidores não desaparecem — você simplesmente para de pensar neles. AWS Lambda é um serviço da Amazon que permite executar código sem provisionar ou gerenciar servidores. Você paga apenas pelo tempo de execução real e pelo número de requisições.
Neste artigo, vamos explorar AWS Lambda com JavaScript (Node.js) desde os fundamentos até exemplos reais. Você aprenderá como criar, configurar e fazer deploy de funções, além de conhecer as melhores práticas.
Fundamentos do AWS Lambda para Node.js
O que é uma função Lambda?
Uma função Lambda é um bloco de código isolado que é executado em resposta a um evento (trigger). A função recebe como entrada event (dados do evento) e context (informações sobre o ambiente de execução) e retorna um resultado.
Estrutura de uma função Lambda simples
Uma função básica em Node.js tem a seguinte aparência:
exports.handler = async (event, context) => { const name = event.queryStringParameters?.name || 'Convidado'; const response = { statusCode: 200, body: JSON.stringify({ message: `Olá, ${name}!` }), }; return response;};- exports.handler — ponto de entrada obrigatório.
- event — contém os dados passados pelo trigger (por exemplo, uma requisição HTTP do API Gateway).
- context — fornece métodos para gerenciar a execução (tempo, logger, identificador).
- A função deve ser async ou retornar uma Promise.
Triggers (fontes de invocação)
A Lambda não existe no vácuo. Ela pode ser invocada por:
- API Gateway — requisições HTTP (REST/WebSocket).
- S3 — upload/exclusão de arquivos.
- DynamoDB Streams — alterações no banco de dados.
- SQS/SNS — filas de mensagens.
- CloudWatch Events — agendamento (cron).
Criação e deploy de uma função Lambda
Passo 1: Configuração do ambiente
Você precisará de:
- Uma conta AWS.
- AWS CLI instalado e credenciais configuradas.
- Node.js (versão 18 ou 20, recomendado pela AWS).
Passo 2: Criar função pelo console
Esta é a maneira mais rápida para iniciantes:
- Acesse o AWS Management Console → Lambda.
- Clique em "Criar função" → "Do zero".
- Informe o nome, selecione o runtime Node.js 20.x.
- Clique em "Criar".
No editor de código, cole nosso exemplo acima e clique em "Deploy". Pronto!
Passo 3: Deploy com AWS CLI
Para automatizar o deploy, use o comando:
zip -r function.zip index.js node_modulesaws lambda update-function-code \ --function-name my-first-lambda \ --zip-file fileb://function.zipCenários avançados e melhores práticas
Trabalhando com variáveis de ambiente
Nunca armazene segredos no código. Use process.env:
const dbPassword = process.env.DB_PASSWORD;const tableName = process.env.TABLE_NAME;As variáveis são definidas nas configurações da função (Configuration → Environment variables).
Tratamento de erros e logging
Use o logger embutido console.log — ele envia automaticamente os logs para o CloudWatch:
exports.handler = async (event) => { console.log('Evento recebido:', JSON.stringify(event, null, 2)); try { // seu código } catch (error) { console.error('Erro:', error.message); throw e