Este projeto consiste em um formulário para o envio de avaliações feito em Python + Flask com uso de DynamoDB e API Gateway na AWS com objetivo de praticar a criação de infraestrutura via IaC e integrá-la a uma aplicação.
- AWS (Lambda, DynamoDB, API Gateway)
- Python
- Flask + HTML + CSS
- Terraform
- Boto3
/api: funções utilizadas pelas Lambdas/app: aplicação com o formulário/terraform: arquivos .tf necessários para a criação da infraestrutura na nuvem
- Rotas:
GET /reviewsPOST /reviews
- Body da requisição POST:
{ "username": "string", "title": "string", "message": "string", "date": "string" } - Body retornado pelo GET:
{ "reviews": [ { "username": "string", "title": "string", "message": "string", "date": "string" } ] }
Utilizadas pela aplicação:
FLASK_SECRET_KEY: utilizada pelo Flask para criptografar a sessionAWS_API_URL: URL fornecida pela AWS ao criar uma API Gateway
Utilizadas pelo Terraform e Boto3 (se for rodar as funções localmente):
AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEYAWS_REGION
# Criar ambiente virtual (em Linux)
python3 -m venv .venv
# Ativar ambiente (em Linux)
source .venv/bin/activate
# Atualizar pip
python3 -m pip install --upgrade pip
# Instalar dependências
pip install -r requirements.txt
# Subir infraestrutura pelo Terraform
cd terraform/ && terraform apply
# Rodar a aplicação
cd .. && python3 app/app.py

