Pular para o conteúdo
ArquiteCloud
Voltar

AWS Lambda: introdução ao serverless na prática

A AWS Lambda é o serviço de computação serverless da AWS: você escreve uma função, sobe o código e a AWS cuida de tudo o mais, desde provisionar servidores até escalar automaticamente conforme a demanda. Neste post você vai entender como a Lambda funciona por dentro, criar sua primeira função pelo console, e aprender quando faz sentido adotar serverless, e quando ela pode ser a escolha errada.

O post não cobre triggers avançados como integração com API Gateway ou processamento de filas com SQS. Esses temas ficam para posts próprios.

Pré-requisitos

Como a Lambda funciona

Quando você cria uma função Lambda, está basicamente dizendo para a AWS: “sempre que alguém chamar essa função, execute este código e me devolva o resultado”. A AWS provisiona um contêiner de execução nos bastidores, injeta seu código nele, roda a função e descarta o contêiner quando termina.

Três conceitos centrais:

Criando sua primeira função

Acesse o console da AWS e navegue até o serviço Lambda.

Passo 1: criar a função

Clique em Create function e escolha Author from scratch. Preencha:

Deixe as permissões no default (a Lambda cria uma role básica com permissão de escrita em logs). Clique em Create function.

Passo 2: escrever o código

No editor inline, substitua o conteúdo pelo código abaixo:

# lambda_function.py
def lambda_handler(event, context):
    nome = event.get("nome", "mundo")
    return {
        "statusCode": 200,
        "body": f"Olá, {nome}!"
    }

O handler recebe um event com um campo opcional nome e devolve uma resposta HTTP-like com status e corpo. Clique em Deploy para salvar.

Passo 3: testar

Clique em Test e crie um evento de teste com o JSON abaixo:

{
  "nome": "arquitecloud"
}

Dê um nome ao evento (ex. teste-basico) e clique em Test novamente. Você deve ver a resposta:

{
  "statusCode": 200,
  "body": "Olá, arquitecloud!"
}
Logs automáticos

A Lambda envia automaticamente os logs de cada execução para o Amazon CloudWatch Logs. Se sua função falhar, é lá que você encontra o stack trace completo.

Vantagens do serverless com a Lambda

Sem servidor para gerenciar. Você não provisiona, não patcha sistema operacional, não configura auto scaling. A AWS faz isso.

Escala automática e instantânea. Se sua função receber mil requisições ao mesmo tempo, a AWS sobe mil instâncias em paralelo. Você não configura nada.

Custo proporcional ao uso. Você paga por número de invocações e por tempo de execução (em incrementos de 1 ms). Se ninguém chamar sua função, o custo é zero.

Integração nativa com o ecossistema AWS. A Lambda se conecta com S3, DynamoDB, SQS, SNS, API Gateway, EventBridge e dezenas de outros serviços com poucos cliques.

Deploy simples. Um arquivo ZIP ou uma imagem de contêiner já é suficiente para colocar código em produção.

Desvantagens: o cold start e outros limites

Cold start

Quando uma função Lambda fica sem receber chamadas por algum tempo, a AWS descarta o contêiner de execução para liberar recursos. Na próxima invocação, ela precisa subir um novo contêiner do zero: baixar o runtime, inicializar dependências, carregar o código. Esse processo leva de alguns milissegundos a alguns segundos dependendo do runtime e do tamanho do pacote.

Isso é o cold start, e ele tem impacto real em aplicações que exigem latência consistente.

Cold start vs warm start

Uma invocação “quente” (warm) reutiliza um contêiner já inicializado e costuma responder em menos de 10 ms. Uma invocação “fria” (cold) pode levar de 200 ms a mais de 1 s, dependendo do runtime (Java e .NET são os mais lentos; Python e Node.js são os mais rápidos).

Estratégias para mitigar:

Outros limites

LimiteValor padrão
Tempo máximo de execução15 minutos
Memória máxima10 GB
Tamanho do pacote (ZIP)50 MB (comprimido)
Concorrência padrão por região1.000 execuções simultâneas
Tamanho do payload de entrada6 MB (síncrono)
Limites de concorrência

O limite de 1.000 execuções simultâneas é por conta AWS, não por função. Se você tiver várias funções em produção e uma delas explodir em tráfego, pode “engolir” a cota das outras. Solicite aumento via Support ou defina reserved concurrency por função.

Quando usar a Lambda (e quando não usar)

Use a Lambda quando

Não use a Lambda quando

Quanto custa manter isso no ar

A Lambda usa modelo pay-as-you-go puro: sem custo quando a função não é invocada.

A precificação tem dois componentes (valores da AWS em agosto de 2026):

Para ter uma ideia prática: uma função com 128 MB de memória rodando por 200 ms, invocada 1 milhão de vezes no mês, custa menos de $0,50. Para a maioria dos projetos iniciais, o custo é zero ou próximo disso.

Calculadora oficial

Use a calculadora de preços da AWS para estimar o custo com base no número real de invocações e tempo médio de execução do seu caso.

Observações importantes

Recapitulando

Você criou sua primeira função Lambda no console, entendeu o ciclo de execução (event, handler, response) e aprendeu o que está por trás do modelo serverless. O principal trade-off é claro: você abre mão de controle e de latência consistente em troca de escala automática, custo zero em idle e zero overhead operacional. Para workloads orientados a evento e tráfego irregular, a Lambda costuma ser a escolha mais simples e barata. Para processamento longo, stateful ou CPU-intensivo, outras opções da AWS se encaixam melhor.

Continuando

A Lambda raramente vive sozinha. Onde ela fica mais interessante é quando entra num pipeline orientado a eventos: reagindo a arquivos novos num bucket S3, processando mensagens de uma fila SQS ou sendo invocada em resposta a eventos do EventBridge.

É exatamente esse pipeline (S3 disparando uma Lambda que processa e entrega dados para análise) que eu cubro no curso Engenharia de dados: AWS, Python e B3 na prática. Caso queira, utilize o cupom ARQUITECLOUD para garantir 50% de desconto na compra.


Compartilhe este post:

Post anterior
Amazon SageMaker AI: a plataforma de ML da AWS