Resumo - Configuracao AWS Lambda + Glue Crawler + Fluxo Git

Data: 16/03/2026 | Projeto: data-etl | Equipe: Artplan Creative Data


1. O que foi feito na AWS

1.1 Glue Crawler (crawler-baruel)

O que e: Um robo da AWS que le os CSVs no S3 e cria uma “tabela” no catalogo de dados (Data Catalog). Isso permite consultar os dados via SQL no Athena.

Configuracao:

Campo Valor
Nome crawler-baruel
Data source s3://artplan-data/bronze/baruel/midia/tiktok/
Database artplan_data
IAM Role artplan-glue-execution
Schedule On demand (disparado pelo Lambda)

1.2 Funcao Lambda (extracao-baruel-tiktok)

O que e: Um servidor da AWS que executa o script automaticamente na nuvem, sem precisar do seu computador.

Configuracao:

Campo Valor
Nome extracao-baruel-tiktok
Handler supermetrics_tiktok_baruel.handler
Runtime Python 3.12
Memoria 256 MB
Timeout 5 minutos
Variavel de ambiente AWS_BUCKET_NAME=artplan-data
Codigo lambda_baruel.zip (gerado por build_lambda.py)

Resultado do teste: 32 linhas, 16 colunas extraidas do Google Sheets em 1.2 segundos.


1.3 Permissoes IAM (artplan-lambda-policy)

A role artplan-lambda-execution precisou das seguintes permissoes:

Permissao Recurso Motivo
ssm:GetParameter arn:aws:ssm:us-east-1:433956820236:parameter/* Leitura de parametros SSM
kms:Decrypt, kms:GenerateDataKey arn:aws:kms:...:key/5ff86eba-d536-... Criptografia do bucket S3
s3:PutObject, s3:PutObjectAcl, s3:PutObjectTagging arn:aws:s3:::artplan-data/bronze/* Escrita e tags no S3
glue:StartCrawler, glue:GetCrawler arn:aws:glue:...:crawler/crawler-baruel Disparar o Glue Crawler
logs:CreateLogGroup, logs:CreateLogStream, logs:PutLogEvents arn:aws:logs:...:log-group:/aws/lambda/* Logs no CloudWatch

2. Fluxo completo da pipeline

EventBridge (agendamento - ainda nao configurado)
    |
    v
Lambda (extracao-baruel-tiktok)
    | 1. Le Google Sheets via gspread
    | 2. Envia CSV para s3://artplan-data/bronze/baruel/midia/tiktok/
    | 3. Se receber "crawler", dispara o Glue Crawler
    v
Glue Crawler (crawler-baruel)
    | Cataloga os dados no Data Catalog
    v
Athena / Power BI
    -> Consulta os dados via SQL

3. Como funciona no script

upload_generico_s3.py (motor generico)

Script reutilizavel para qualquer cliente. Aceita dados de Google Sheets ou arquivo local e envia para o S3.

Funcoes principais: - executar(params) - recebe um dicionario e faz tudo (extrair + upload + crawler) - handler(event, context) - ponto de entrada do Lambda - iniciar_crawler(nome) - dispara o Glue Crawler e aguarda conclusao

Uso via terminal:

python upload_generico_s3.py \
  --origem "https://docs.google.com/spreadsheets/d/1KzD.../edit" \
  --aba "Tiktok Ads" \
  --cliente baruel --projeto midia --fonte tiktok

Uso via Lambda (event JSON):

{
  "origem": "https://docs.google.com/spreadsheets/d/1KzD.../edit",
  "aba": "Tiktok Ads",
  "cliente": "baruel",
  "projeto": "midia",
  "fonte": "tiktok",
  "crawler": "crawler-baruel"
}

supermetrics_tiktok_baruel.py (wrapper do Baruel)

Wrapper que define os parametros fixos do Baruel e chama o script generico.

Uso via terminal:

python supermetrics_tiktok_baruel.py
python supermetrics_tiktok_baruel.py --ano 2026 --mes 3

Uso via Lambda: - Handler: supermetrics_tiktok_baruel.handler - Event: {} (usa mes/ano atual) ou {"ano": 2026, "mes": 3, "crawler": "crawler-baruel"}

build_lambda.py

Script utilitario que gera o pacote lambda_baruel.zip para deploy no Lambda. Empacota os scripts + dependencias + credentials.json.

python extracao/baruel/build_lambda.py
# Gera: extracao/baruel/lambda_baruel.zip

4. Fluxo Git - Branch + Pull Request

Antes (push direto na main)

Edita codigo -> git push trabalho main -> codigo vai direto para producao
  • Ninguem revisa
  • Se tiver erro, ja esta na main
  • Deploy roda imediatamente

Agora (branch + PR)

Edita codigo -> cria branch -> git push -> abre PR -> revisao -> merge

Passo a passo:

Passo Comando / Acao Por que
1 git checkout -b feature/minha-task Isola o codigo da branch principal
2 git add ... + git commit Salva as mudancas na branch
3 git push -u trabalho feature/minha-task Envia para o GitHub (fora da main)
4 gh pr create --title "..." --body "..." Cria o Pull Request para revisao
5 Auto-revisao no GitHub Voce revisa o proprio codigo
6 Merge manual Clica em “Merge” apos o check verde
7 git checkout main + git pull Volta para main atualizada

Vantagem: o PR e uma camada de seguranca entre o codigo e a producao. O deploy so roda apos o merge na main.


5. Pendencias


Documento gerado em 16/03/2026 com auxilio do Claude Code