Este projeto é uma aplicação em Python 3.11, com a função de treinar o desenvolvimento de uma pipeline para o deploy de quaisquer mudanças realizadas na branch "main", com um gatilho para atualizar uma instancia EC2 na nuvem AWS.
python3 pet_info.py
- Adicionar novos pets com nome, raça, idade, peso e informação sobre vacinação.
- Visualizar a informação do pets cadastrado.
- Python: Linguagem de programação utilizada para desenvolver a aplicação.
- Flask: Framework web utilizado para criar a aplicação.
- Gunicorn: Servidor HTTP WSGI para servir a aplicação.
- AWS: Nuvem utilizada para hospedar a aplicação.
- Github Actions: Ferramenta utilizada para criar a pipeline de deploy.
- Python 3.11
- Pip
- Virtualenv
- Clone o repositório
git clone [email protected]:LuizCampedelli/Projeto_Api_Pet_ADA_Final.git
- Crie um ambiente virtual
python3 -m venv myvenv
source myvenv/bin/activate
- Instale as dependências
pip install -r requirements.txt
- Execute a aplicação no CLI
python3 pet_info.py
- Acesse a aplicação no navegador
gunicorn --bind 0.0.0.0:5000 app:app
- Acesse a aplicação no navegador
http://localhost:5000
- Crie uma conta na AWS e configure o acesso programático.
- Crie uma EC2, com chave de SSH, baixe a chave para um local seguro.
- Crie um Security Group para a EC2, com as portas 22 e 5000 abertas.
- Adicione os segredos em varias e segredos do actions na aba Settings do repositório, com as seguintes chaves:
- AWS_ACCESS_KEY_ID
- AWS_SECRET_ACCESS_KEY
- AWS_REGION
- EC2_IP
- EC2_PRIVATE_KEY
-
Faça um push na branch "main" e veja a pipeline de deploy ser executada.
-
Acesse a aplicação no navegador
http://<EC2_IP>:5000
-
Caso queira fazer modificações sem dar gatilho no deploy, faça commits assim:
git commit -m 'feat/nome_da_feature [skip actions]'
- [skip ci]
- [ci skip]
- [no ci]
- [skip actions]
- [actions skip]
git commit -m "Update docs [skip ci]" git commit -m "Fix typo [ci skip]" git commit -m "Minor change [no ci]" git commit -m "Change config [skip actions]" git commit -m "Update dependencies [actions skip]"
- Caso não queira enviar os arquivos de README e docs para o deploy, adicone no seu deploy:
on:
push:
branches:
- main
paths-ignore:
- 'docs/**'
- 'README.md'
Este projeto está sob a licença do MIT. Consulte a LICENSE para obter mais informações.
- Siga as diretivas do CONTRIBUTING.md