- Python 91.4%
- HTML 4.8%
- Dockerfile 3.8%
| Desafio | ||
| evidencias/0_desafio | ||
| exercicios | ||
| README.md | ||
Organização do repositorio:
A principal entrega é o main que utiliza os códigos do módulo e faz o upload dos arquivos para o s3.
Esse readme é um tutorial mais detalhado de como executar novamente os container para obter o mesmo resultados.
Pontos de entrada autenticação
O entry_points/auth/ é o diretório onde fica o arquivo env, entry points é o volume docker então, as credenciais são coletadas pelo volume, caso surja duvida de como deve ser o env, pode ser consultado o readme e o env.example que esta dentro do auth.
Como cito acima o entry points é volume docker, ele é do tipo bind mounts, dentro desse volume temos também data onde deve ser inseridos os dois arquivos csv com os nome originais! atenção aos nomes pois faz diferença na execução
Docker file é o arquivo da imagem do container ela contem os metadados sobre como sera a configuração do ambiente docker.
O compose é como vai ser construído a image e também configura o volume.
O module é onde fica as funções para o upload do csv e acesso a aws, ele é divido em duas pastas que são auth onde fica todos os recursos para poder cria uma secção com a credencias no env que esta no volume e buckets que são funções que acessa o s3 usando a credencial e upa o arquivo.
Evidências:
Essas evidencias são apenas do desafio visto que a evidencias dos exercícios ja estão listadas acima.
Etapa 1 :
Configurando o ambiente:
Verificando os buckets existentes

Atualizando as credenciais do env

Acessando diretório do docker compose

Listando as imagens e containers do docker

Executando os docker:
Executando o docker compose up

Resultados:
Verificando os arquivos no buckets

Reexecução
Descrição do Projeto
Este projeto é referente a sprint 6, com o intuito de tornar o projeto mais explicativo foi criado esse readme com mais detalhes sobre a estrutura e como executar novamente para obter os mesmo resultados.
Estrutura do projeto:
Dentro do diretório Desafio temos a seguinte estrutura:
-
python/: Pasta que contém os códigos Python responsáveis pela autenticação na aws para usar os recursos do S3 e fazer upload dos arquivos csv, o script principal é o main.py que executa outras funções.
-
entry_points/: Pasta que é montada como volume no container Docker, onde tem dois subdiretórios data e auth, data é onde fica os arquivos csv que irão para o S3, o auth é o local reservado para o env com as credencias.
-
docker-compose.yml: Arquivo de configuração do Docker Compose que define os serviços e volumes.
Estrutura de Pastas
Desafio/
│
├── docker-compose.yml
└── entry_points/
└── data/
└── auth/
├── python/
└── main.py
└── Dockerfile
└── module/
└── auth/
└── buckets/
Configuração
Credencias
AWS Credentials: Certifique-se de configurar suas credenciais da AWS nas variáveis de ambiente AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY e AWS_SESSION_TOKEN. Estas podem ser adicionadas diretamente na pasta entry_points/auth/ que possui um env.example para poder ser copiado e alterado com sua credenciais.
CSV
É importa que sejam ineridos os arquivos csv no volume docker entry_points/data tanto series e movies, atenção aos nomes também pois isso faz diferença, o motivo de eu não ter colocado os arquivos direto no git é porque o github não da suporte para arquivos de grade porte.
Como Executar
-
Clone o repositório para sua máquina local.
-
Navegue até o diretório do projeto do
docker-compose.yaml. -
Confirme se o arquivo env esta configurado em
entry_points/data. -
Confirme se o arquivos de series e movies estão na pasta de
entry_points/data. -
Execute o comando abaixo para iniciar o container Docker:
docker-compose up
Funcionamento
Quando o container é iniciado, ele executa o script main.py, inicialmente ele coleta as credenciais do .env e cria uma seção,depois é feita a verificação se ja existe o bucket na aws, caso não exita ele é criado, depois os arquivos csv da pasta entry_points/data são carregados para o bucket S3 especificado.

