Data: 16/03/2026 | Projeto: data-etl | Equipe: Artplan Creative Data
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) |
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.
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 |
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
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"
}
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"}
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
Edita codigo -> git push trabalho main -> codigo vai direto para producao
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.
Documento gerado em 16/03/2026 com auxilio do Claude Code