En este repositorio se recopila todo el código desarrollado para el Trabajo Final de Máster del Máster de Ciencia de Datos e Ingeniería de Datos en la Nube.
Se despliega toda una infraestructura en AWS para crear un sistema de verificación de datos geoespaciales:
-
Se crea una
Lambdaque realiza peticiones a unaAPIde datos meteorológicos cada dos horas para procesarlos y almacenarlos en una tabla deDynamoDB. -
Se despliega una
API Gatewaycon dos recursos (GET /climayGET /clima/{provincia}) e integrada con otraLambdapara que se puedan consultar los datos almacenados en la tabla deDynamoDBmediante dicha API. -
Por último, se crea una aplicación web con
Streamlitpara mostrar los datos de forma gráfica en un mapa, además de visualizaciones de los datos conSeaborn. Esta aplicación se conteneriza creando una imagen deDockerpara subirla aECRy desplegarla mediante un servicio deECSconFargate, realizando la configuración de red (subredes, grupo de seguridad, puerta de enlace de internet, etc) medianteVPC.
Se realiza linting del código de Python, se ejecutan tests unitarios y se realiza el aprovisionamiento de toda la infraestructura de AWS con Terraform mediante un proceso de CI/CD con GitHub Actions.
-
.github: Directorio donde se recopilan los
YAMLque se encargan de definir los flujos deCI/CDdeGithub Actions. En el proceso de integración continua se realizalintingdel código dePythony en el proceso de despliegue continuo se ejecuta el aprovisionamiento de la infraestructura deAWSmedianteTerraform. -
img: Carpeta para recopilar imágenes.
-
infra: En esta carpeta se recopilan todos los archivos de configuración de
Terraformdesarrollados conHCLy estructurados en módulos y los recursos comolayersy códigos de lasLambdaen.zip. -
src: Directorio donde se almacenan los códigos de
Pythondesarrollados para las funcionesLambdaasí como para la aplicación web deStreamlit. -
test: Carpeta donde se almacenan los tests unitarios creados de las funciones de
Python.
