Funções Serverless em JavaScript: AWS Lambda – Guia Completo

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Introdução à Arquitetura Serverless e AWS Lambda



O desenvolvimento web moderno está se movendo rapidamente em direção à computação serverless. Esse paradigma permite que os desenvolvedores se concentrem em escrever a lógica de negócios, sem se preocupar com o gerenciamento da infraestrutura. AWS Lambda é um dos serviços mais populares para implementar funções serverless e se integra perfeitamente com JavaScript (Node.js).



Neste artigo, vamos detalhar o que é AWS Lambda, como criar e executar sua primeira função serverless em JavaScript, abordar as melhores práticas e exemplos de código real. O material será útil tanto para iniciantes quanto para desenvolvedores experientes que desejam dominar o desenvolvimento serverless.



O que é AWS Lambda e como funciona com Node.js



AWS Lambda é um serviço de computação que executa seu código em resposta a eventos e gerencia automaticamente os recursos computacionais. Você paga apenas pelo tempo de execução consumido (arredondado para 1 ms) e pelo número de requisições.



Principais características do AWS Lambda para desenvolvedores JavaScript

  • Suporte a Node.js: AWS Lambda suporta oficialmente Node.js 14, 16, 18 e 20.
  • Escalonamento automático: Lambda cria automaticamente instâncias da função para processar cada requisição recebida.
  • Triggers: As funções podem ser invocadas por HTTP (via API Gateway), por agendamento (CloudWatch Events), ao fazer upload de arquivo no S3 e de muitas outras formas.
  • Limitações: Tempo de execução de até 15 minutos, memória de 128 MB a 10.240 MB, tamanho do pacote de até 50 MB (compactado) ou 250 MB (descompactado).


Para trabalhar com Lambda em JavaScript, não é necessária nenhuma configuração adicional — basta escrever o handler e fazer upload do código para a AWS.



Criando sua primeira função serverless em JavaScript



Vamos escrever uma função serverless simples que recebe um JSON com o nome do usuário e retorna uma saudação. Este é um exemplo clássico para começar a se familiarizar com AWS Lambda.



Passo 1: Estrutura básica do handler

Cada função Lambda em Node.js consiste em uma função handler exportada, que recebe três parâmetros: event (evento), context (contexto de execução) e callback (para resposta assíncrona).



// index.jsexports.handler = async (event, context) => {    // Lógica da função    const name = event.name || 'Convidado';    return {        statusCode: 200,        body: JSON.stringify({            message: `Olá, ${name}! Esta é sua primeira função serverless.`        })    };};


Passo 2: Tratamento de diferentes tipos de eventos

Em projetos reais, os eventos podem vir de diferentes fontes. Vejamos um exemplo de processamento de requisição do API Gateway:



// handler.jsexports.handler = async (event) => {    try {        // Parse do corpo da requisição (se houver)        const body = event.body ? JSON.parse(event.body) : {};        const { userId, action } = body;

// Exemplo de lógica de negócios const result = { userId: userId || 'unknown', action: action || 'default', timestamp: new Date().toISOString(), message: 'Ação executada com sucesso' };

return { statusCode: 200, headers: { 'Content-Type': 'application/json', 'Access-Control-Allow-Origin': '*' }, body: JSON.stringify(result) }; } catch (error) { return { statusCode: 500, body: JSON.stringify({ error: error.message }) }; }};


Trabalhando com serviços externos e ambiente



Funções serverless raramente trabalham isoladamente. Na maioria das vezes, precisam interagir com bancos de dados, S3, Dyna

Blogs

Book Recommendations