Skip to content

LuizCampedelli/Projeto_Api_Pet_ADA_Final

 
 

Repository files navigation

Projeto Api Pet ADA

Sumario

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.

Resultado final:

ec2_app_1

ec2_app_2

App rodando na AWS

ec2_app_3

App rodando na CLI

Caso queira, atraves de uma conexão SSH ou do Cloud Connect, em /home/ec2-user/app, rode o comando:

python3 pet_info.py

Resultado

ec2_app_4

Arquitetura da implantação

ec2_app_5

Funcionalidades do app

  • Adicionar novos pets com nome, raça, idade, peso e informação sobre vacinação.
  • Visualizar a informação do pets cadastrado.

Tecnologias utilizadas

  • 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.

Como utilizar

Pré-requisitos

  • Python 3.11
  • Pip
  • Virtualenv

Instalação

  1. Clone o repositório
git clone [email protected]:LuizCampedelli/Projeto_Api_Pet_ADA_Final.git
  1. Crie um ambiente virtual
python3 -m venv myvenv
source myvenv/bin/activate
  1. Instale as dependências
pip install -r requirements.txt
  1. Execute a aplicação no CLI
python3 pet_info.py
  1. Acesse a aplicação no navegador
gunicorn --bind 0.0.0.0:5000 app:app
  1. Acesse a aplicação no navegador
http://localhost:5000

Como implantar na AWS usando Github Actions

  1. Crie uma conta na AWS e configure o acesso programático.
  2. Crie uma EC2, com chave de SSH, baixe a chave para um local seguro.
  3. Crie um Security Group para a EC2, com as portas 22 e 5000 abertas.
  4. 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
  1. Faça um push na branch "main" e veja a pipeline de deploy ser executada.

  2. Acesse a aplicação no navegador

http://<EC2_IP>:5000

Observações

  • Caso queira fazer modificações sem dar gatilho no deploy, faça commits assim:

    git commit -m 'feat/nome_da_feature [skip actions]'

    São suportados para dar skip actions os seguintes tipos no commit:

    • [skip ci]
    • [ci skip]
    • [no ci]
    • [skip actions]
    • [actions skip]

    Exemplo de commit com skip actions:

    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]"

Boas práticas

  • 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'

Licença

Este projeto está sob a licença do MIT. Consulte a LICENSE para obter mais informações.

Como contribuir

  1. Siga as diretivas do CONTRIBUTING.md

Autores


About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 62.2%
  • HTML 37.8%