Skip to content

Automação serverless com AWS Lambda integrada ao S3 e monitorada pelo CloudWatch. Projeto final do Bootcamp DIO, incluindo templates, documentação e evidências.

License

Notifications You must be signed in to change notification settings

fiamaribeiro/aws-lambda-s3-automation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚀 AWS Lambda + S3 Automation

Projeto final do Bootcamp DIO: Executando Tarefas Automatizadas com AWS Lambda e S3.
Este laboratório demonstra a integração entre Amazon S3, AWS Lambda e Amazon CloudWatch, criando um fluxo automatizado para processar arquivos enviados ao bucket.


🚀 AWS Lambda + S3 Automation

AWS S3 CloudWatch Python Status License


📖 Descrição

O objetivo é consolidar conhecimentos de event-driven architecture na AWS:

  • Criar um bucket S3.
  • Configurar evento para disparar a Lambda em cada upload.
  • Implementar função Lambda em Python para processar os arquivos.
  • Validar logs no CloudWatch.
  • Documentar todo o processo.

🎯 Objetivos de Aprendizagem

  • Aplicar conceitos de computação serverless.
  • Automatizar fluxos com Lambda + S3.
  • Documentar configurações e código de forma clara.
  • Utilizar o GitHub como portfólio de documentação técnica.

🛠️ Arquitetura

flowchart TD
    A[Usuário faz upload no S3] -->|Evento on-object-created| B[Amazon S3]
    B -->|Dispara evento| C[AWS Lambda]
    C -->|Processa o arquivo e gera logs| D[Amazon CloudWatch Logs]
Loading

📂 Estrutura do Repositório

aws-lambda-s3-automation/
│-- lambda/
│   └─ index.py          
│-- templates/           
│-- images/             
│   ├─ 01-s3-bucket-list.png
│   ├─ 02-s3-event-notification.png
│   ├─ 03-lambda-code-index.png
│   ├─ 04-lambda-runtime-handler.png
│   ├─ 05-lambda-permissions-role.png
│   ├─ 06-lambda-trigger-s3.png
│   ├─ 07-s3-upload-success.png
│   └─ 08-cloudwatch-log-success.png
│-- README.md           

💻 Código da Lambda (index.py)

import json, os, urllib.parse, boto3, logging

logger = logging.getLogger()
logger.setLevel(logging.INFO)

s3 = boto3.client('s3')

def lambda_handler(event, context):
    logger.info("Event: %s", json.dumps(event))
    record = event['Records'][0]
    bucket = record['s3']['bucket']['name']
    key = urllib.parse.unquote_plus(record['s3']['object']['key'])
    size = record['s3']['object'].get('size', 'unknown')

    content_preview = ""
    try:
        if key.lower().endswith(('.txt', '.csv', '.json')):
            obj = s3.get_object(Bucket=bucket, Key=key)
            body = obj['Body'].read().decode('utf-8')
            content_preview = body[:200]  # primeiros 200 caracteres
    except Exception as e:
        logger.warning("Could not preview file content: %s", str(e))

    result = {
        "bucket": bucket,
        "key": key,
        "size": size,
        "preview": content_preview
    }

    logger.info("Processed: %s", json.dumps(result))
    return result

⚙️ Configurações

  • Bucket S3: fiama-lambda-s3-automation
  • Evento S3: on-object-created → destino: lambda-s3-automation
  • Lambda Runtime: Python 3.13
  • Handler: lambda.index.lambda_handler
  • Role: AWSLambdaBasicExecutionRole + permissões de leitura no S3
  • Logs: registrados automaticamente no CloudWatch

📸 Evidências

Amazon S3

Bucket S3 Notificação de Evento S3 Upload bem-sucedido

AWS Lambda

Código da Lambda (index.py) Runtime & Handler correto Permissões da Role Trigger configurado no S3

CloudWatch

Logs da execução bem-sucedida


✅ Checklist de Validação

  • Bucket criado no S3.
  • Evento configurado (on-object-created).
  • Lambda criada com handler correto (lambda.index.lambda_handler).
  • Permissões ajustadas (S3 read + CloudWatch logs).
  • Upload de arquivos .txt e .csv.
  • Logs confirmados no CloudWatch.

📚 Recursos úteis


✨ Autor

Projeto desenvolvido por Fiama Ribeiro 💜
Bootcamp DIO — Formação AWS Cloud

About

Automação serverless com AWS Lambda integrada ao S3 e monitorada pelo CloudWatch. Projeto final do Bootcamp DIO, incluindo templates, documentação e evidências.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages