Ainda implantando funções Lambda manualmente?

meme

Todos nós já passamos por isso: zipando código manualmente, fazendo upload para S3, configurando triggers, configurando API Gateway… é o suficiente para fazer você questionar se serverless realmente vale a pena. Ou pior, escrevendo centenas de linhas de Terraform só para implantar uma função simples.

Conheça o AWS SAM CLI

AWS Serverless Application Model (SAM) CLI é a ferramenta que vai fazer você se apaixonar novamente pelo desenvolvimento serverless. É como um Docker Compose para funções Lambda.

# Instalação
brew install aws-sam-cli

A aplicação serverless de 30 segundos

Crie um novo projeto:

sam init

Escolha o “Hello World Example” com Python, e você terá uma estrutura de projeto assim:

my-app/
├── hello_world/
│   ├── __init__.py
│   ├── app.py
│   └── requirements.txt
├── events/
│   └── event.json
├── template.yaml
└── tests/

A mágica está no template.yaml, que define toda sua aplicação:

AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Resources:
  HelloWorldFunction:
    Type: AWS::Serverless::Function
    Properties:
      CodeUri: hello_world/
      Handler: app.lambda_handler
      Runtime: python3.9
      Events:
        HelloWorld:
          Type: Api
          Properties:
            Path: /hello
            Method: get

Teste localmente (sim, é verdade!)

sam local invoke

Ou inicie uma API local (precisa de Docker):

sam local start-api

Deploy com um único comando

sam deploy --guided

Isso compila seu código, empacota, cria/atualiza a stack do CloudFormation e te dá um endpoint de API. Tudo com um comando!

Dica pro: Use SAM Accelerate para iterações mais rápidas

sam sync --watch

Isso observa as alterações nos arquivos e automaticamente sincroniza com a nuvem. Sem necessidade de reimplantação completa.

Sem mais desculpas para não usar serverless. O SAM CLI torna tudo quase fácil demais!