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.
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.
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-functionsaws lambda list-functions
aws lambda list-functions
aws lambda create-functionaws 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-functionaws lambda get-function
aws lambda get-function --function-name <nome>
aws lambda invokeexecutar a função
aws lambda invoke --function-name <nome> <arquivo-de-saida>
aws lambda update-function-configurationaws 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-codeaws lambda update-function-code
aws lambda update-function-code --function-name processa-pedido \ --zip-file fileb://app.zip
aws lambda publish-versionaws lambda publish-version
aws lambda publish-version --function-name processa-pedido
aws lambda create-aliasaws lambda create-alias
aws lambda create-alias --function-name processa-pedido \ --name prod --function-version 1
aws lambda add-permissionaws 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-functionaws lambda list-versions-by-function
aws lambda list-versions-by-function --function-name processa-pedido
aws lambda update-aliasaws lambda update-alias
aws lambda update-alias --function-name processa-pedido \ --name prod --function-version 2
aws lambda get-policyaws lambda get-policy
aws lambda get-policy --function-name processa-pedido
aws lambda delete-functionaws lambda delete-function
aws lambda delete-function --function-name <nome>
Cada atividade é um pedido de trabalho, do jeito que ele chega no dia a dia — você resolve digitando os comandos, não escolhendo alternativa.
Comece pelo básico: liste as funções Lambda da conta.
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.
Toda foto que sobe no S3 precisa virar miniatura. Crie a função resize-imagens (Python).
O gateway de pagamento vai chamar um webhook. Crie a função webhook-pagamento em Node 20.
Crie a função consulta e veja a configuração dela.
Função criada não serve de nada parada: invoque a ola-mundo, salvando a resposta em saida.json.
Acabou de subir a função checa-saude e quer testar. Crie ela e invoque (saída em saida.json).
A ola-mundo está estourando o tempo. Ajuste a configuração dela: timeout de 30s e 256 MB de memória.
Configure na função ola-mundo a variável de ambiente TABELA com o valor pedidos.
Crie a função processa e invoque ela (salvando a saída em saida.json).
Crie a função tarefa e ajuste o timeout dela pra 30 segundos.
Crie a função pesada (Node 20) e suba a memória pra 512 MB.
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.
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.
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.
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.
Antes de fazer rollback você precisa saber para onde voltar. Liste as versões da processa-pedido.
Saiu um deploy ruim. Reaponte o alias prod para o $LATEST. É literalmente assim que se desfaz um deploy sem derrubar ninguém.
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>
Apague a processa-pedido. <small>(apagar a função leva junto as versões e os aliases — não há lixeira)</small>
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