Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ar3secchim/upload-files
https://github.com/ar3secchim/upload-files
Last synced: about 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/ar3secchim/upload-files
- Owner: Ar3secchim
- Created: 2024-12-06T11:24:24.000Z (about 2 months ago)
- Default Branch: main
- Last Pushed: 2024-12-06T12:01:46.000Z (about 2 months ago)
- Last Synced: 2024-12-06T12:32:28.080Z (about 2 months ago)
- Language: Python
- Size: 2.93 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## Plano de Desenvolvimento
### 1. Arquitetura
A solução será desenvolvida pelos seguintes componentes:
- S3: Armazenamento dos arquivos.
- SNS: Notificação de eventos no S3.
- SQS: Fila para processar mensagens vindas do SNS.
- Lambda: Função que lê mensagens do SQS, processa os dados e registra no banco.
- RDS: Cache para melhorar a leitura de dados frequentemente consultados.
- Banco de Dados: MySQL ou PostgreSQL (compatível com AWS RDS).### 2. Fluxo de Trabalho
- Um script gera um arquivo com um número aleatório de linhas.
- O arquivo é enviado automaticamente para o S3.
- Um evento do S3 dispara uma notificação para o SNS.
- SNS encaminha a notificação para o SQS.
- Uma Lambda é acionada para:
- Ler a mensagem do SQS.
- Processar o arquivo (contar as linhas).
- Registrar os dados (nome do arquivo e quantidade de linhas) no banco de dados.
- O RDS é utilizado para armazenar metadados de arquivos frequentemente consultados.### 3. Requisitos Técnicos
- Aplicação para geração e envio
- Linguagem: Python.
- Uso da biblioteca boto3 para integração com o AWS S3.
- Geração de arquivos com uuid para nomes únicos.
- Código da infraestrutura
- Terraform para provisionar os recursos AWS (S3, SNS, SQS, Lambda, Elasticache, e RDS).
- Monitoramento
- Utilizar CloudWatch para monitorar métricas do Lambda, filas do SQS e eventos no S3.
- Configuração de alarmes para eventos críticos (ex: erro no Lambda ou fila acumulada).