Praticar de graça

λEntenda o AWS Lambda

Lambda é código que roda sem servidor (serverless). Você não liga máquina nenhuma: sobe uma função, e a AWS a executa quando algo a chama — e some quando termina. Você paga só pelos milissegundos que ela rodou.

Pra que serve

Reagir a eventos e rodar tarefas curtas sem manter um servidor ligado à toa: processar um arquivo assim que ele chega no S3, responder a uma requisição de API, redimensionar uma imagem, mandar um e-mail. Se o trabalho é esporádico, sai muito mais barato que um EC2 ligado 24h.

Onde se usa no mundo real

Vocabulário

Função
o pedaço de código que roda sob demanda. Você sobe o código e a AWS executa quando chamado.
Runtime
a linguagem/versão que roda a função. Ex.: python3.12, nodejs20.x.
Handler
o ponto de entrada — qual função do seu código a AWS chama. Ex.: app.handler.
Invoke
executar a função. Você "invoca" e recebe a resposta.
Role de execução
a permissão que a função tem (via IAM) pra falar com outros serviços.
💰 Como cobra: Você paga por número de execuções e tempo de cada uma (em ms). Tem um nível gratuito generoso — pra pouco tráfego, muitas vezes custa zero.

Comandos que você aprende nesta trilha

Cada um deles roda de verdade no terminal do CLImb, com a mesma saída e as mesmas mensagens de erro que a AWS devolve.

aws lambda list-functions

aws lambda list-functions

aws lambda list-functions

aws lambda create-function

aws lambda create-function

aws lambda create-function --function-name <nome>
--runtime <runtime> --role <arn-da-role>
--handler <arquivo.função> --zip-file fileb://<código.zip>

aws lambda get-function

aws lambda get-function

aws lambda get-function --function-name <nome>

aws lambda invoke

executar a função

aws lambda invoke --function-name <nome> <arquivo-de-saida>

aws lambda update-function-configuration

aws lambda update-function-configuration

aws lambda update-function-configuration --function-name <nome>
[--timeout <segundos>] [--memory-size <MB>]
[--environment Variables={CHAVE=valor,OUTRA=valor}]

aws lambda update-function-code

aws lambda update-function-code

aws lambda update-function-code --function-name processa-pedido \
--zip-file fileb://app.zip

aws lambda publish-version

aws lambda publish-version

aws lambda publish-version --function-name processa-pedido

aws lambda create-alias

aws lambda create-alias

aws lambda create-alias --function-name processa-pedido \
--name prod --function-version 1

aws lambda add-permission

aws lambda add-permission

aws lambda add-permission --function-name processa-pedido \
--statement-id s3-invoca --action lambda:InvokeFunction \
--principal s3.amazonaws.com

aws lambda list-versions-by-function

aws lambda list-versions-by-function

aws lambda list-versions-by-function --function-name processa-pedido

aws lambda update-alias

aws lambda update-alias

aws lambda update-alias --function-name processa-pedido \
--name prod --function-version 2

aws lambda get-policy

aws lambda get-policy

aws lambda get-policy --function-name processa-pedido

aws lambda delete-function

aws lambda delete-function

aws lambda delete-function --function-name <nome>

O que você pratica (20 atividades)

Cada atividade é um pedido de trabalho, do jeito que ele chega no dia a dia — você resolve digitando os comandos, não escolhendo alternativa.

Alguma função por aí?

Comece pelo básico: liste as funções Lambda da conta.

Olá, mundo serverless

Crie a função ola-mundo: runtime python3.12, handler app.handler, código app.zip (existe no disco local) e role arn:aws:iam::123456789012:role/papel-lambda.

Redimensionar imagens

Toda foto que sobe no S3 precisa virar miniatura. Crie a função resize-imagens (Python).

Webhook de pagamento

O gateway de pagamento vai chamar um webhook. Crie a função webhook-pagamento em Node 20.

Detalhe da função

Crie a função consulta e veja a configuração dela.

Execute a função

Função criada não serve de nada parada: invoque a ola-mundo, salvando a resposta em saida.json.

Teste rápido

Acabou de subir a função checa-saude e quer testar. Crie ela e invoque (saída em saida.json).

Mais músculo

A ola-mundo está estourando o tempo. Ajuste a configuração dela: timeout de 30s e 256 MB de memória.

Variável de ambiente

Configure na função ola-mundo a variável de ambiente TABELA com o valor pedidos.

Invoque a função

Crie a função processa e invoque ela (salvando a saída em saida.json).

Aumente o tempo limite

Crie a função tarefa e ajuste o timeout dela pra 30 segundos.

Mais memória

Crie a função pesada (Node 20) e suba a memória pra 512 MB.

Publique código novo (o deploy real)

O create-function só serve na primeira vez. No dia a dia, o que você roda é o comando que troca o código de uma função que já existe. Atualize o código da processa-pedido.

Congele uma versão

O $LATEST muda a cada deploy — não dá pra confiar nele em produção. Publique uma versão da processa-pedido: uma foto imutável do código de agora.

Aponte o apelido de produção

Quem chama a função não deve precisar saber o número da versão. Crie o alias prod apontando pra versão 1 da processa-pedido.

Deixe o S3 chamar sua função

A role deixa a Lambda usar outros serviços. Isto aqui é o contrário: deixar outro serviço invocar ELA. Sem isso, o gatilho falha calado. Dê permissão pro s3.amazonaws.com invocar a processa-pedido.

Quais versões existem?

Antes de fazer rollback você precisa saber para onde voltar. Liste as versões da processa-pedido.

Rollback em uma linha

Saiu um deploy ruim. Reaponte o alias prod para o $LATEST. É literalmente assim que se desfaz um deploy sem derrubar ninguém.

Quem pode invocar esta função?

Confira a política da função e veja quem ganhou permissão de chamá-la. <small>(é o jeito de saber se o gatilho vai mesmo funcionar antes de testar)</small>

Encerre a função

Apague a processa-pedido. <small>(apagar a função leva junto as versões e os aliases — não há lixeira)</small>

Continue por aqui

Ler explica. Digitar fixa. No CLImb você roda os comandos de verdade num terminal AWS simulado — o estado persiste entre eles, como na nuvem real.

As 3 primeiras atividades desta trilha são abertas; o resto faz parte do plano Pro.

Começar — 3 atividades grátis
Todas as lições · Praticar no terminal · Sobre