Funções Serverless em JavaScript: AWS Lambda do A ao Z

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 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:

  1. Acesse o AWS Management Console → Lambda.
  2. Clique em "Criar função" → "Do zero".
  3. Informe o nome, selecione o runtime Node.js 20.x.
  4. 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.zip


Cená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                

Blogs

Book Recommendations