-
Bucket S3
- Se deployan 2 Buckets S3. Uno para el frontend estático y otro para guardar los logs del proyecto. El frontend posee un index.html con data mockeada.
-
Cloudfront
- Se vincula Cloudfront con el Bucket S3 del frontend para poder acceder a la página web.
- Se configura para que los logs se guarden en un Bucket S3 específico.
- Además, se configura el API Gateway para que pueda ser accedido desde el Cloudfront.
-
Dynamo DB
- Tabla "ong".
- Partition Key: neighborhood para poder filtrar por barrios de forma eficiente.
- Sort key: id.
- Ademas se insertaran datos como name, email y phone que no se ven registrados en el código de Terraform
- Tabla "pets" con la informacion requerida para crear una mascota.
- Partition Key: ong_id para filtrar de forma eficiente las mascotas pertenecientes a una ong.
- Range Key: id.
- GSIs: por Type, Age y Situation para optimizar los posibles filtros.
- Toda la información se almacena encriptada.
- Tabla "ong".
-
VPC
- Se crea una VPC con 2 subredes privadas en la region us-east-1.
- Se le agrega un VPC Endpoint para que las funciones Lambdas tengan acceso a Dynamo DB.
-
API Gateway
GET /pets
para obtener toda la lista de mascotas. Inicialmente se encuentra sin valores porque la tabla esta vacía.POST /pets
para crear una nueva mascota con los parámetros dentro del body del request.
-
Lambda
- Implementación de las funciones necesarias para los endpoints de la API. Realizadas en Python.
- fileset
- Enumera la lista de archivos dado un path y un patrón.
- filemd5
- Genera el hash del archivo utilizando una variante de md5.
- flatten
- Unifica todo lo que se le ingrese en una lista.
- sha1
- Genera el hash SHA1.
- jsonencode
- Codifica lo que se ingresa por parámetro con un sintáxis JSON.
- length
- Devuelve la longitud de la lista especificada.
- cidrsubnet
- Calcula la dirección dentro la IP ingresada.
- for_each
- for_each recibe un mapa o una lista de strings y crea una instancia para cada item.
- count
- count recibe un número y crea esa cantidad de instancias del recurso o modulo específico.
- lifecycle
- lifecycle ayuda al control de las operaciones que realiza Terraform mediante la creación de reglas particulares para cada recurso.
![Captura de Pantalla 2023-05-19 a la(s) 20 01 21](https://private-user-images.githubusercontent.com/67807324/239653079-b6ddaa22-cfa7-49dd-9786-8b0c0f634467.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjQ2MDMxMTcsIm5iZiI6MTcyNDYwMjgxNywicGF0aCI6Ii82NzgwNzMyNC8yMzk2NTMwNzktYjZkZGFhMjItY2ZhNy00OWRkLTk3ODYtOGIwYzBmNjM0NDY3LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MjUlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODI1VDE2MjAxN1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTAxNTZlOTlhZTg3NDMzNjQzYzM4NjMzZmFkMzJhMThmNmNkZWQ1YzcxNTc1YWEzZDMyODM5N2NhZjFmMmZkY2ImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.Z0FUwSNSwieWPToIpY9xqAOwSZF8RibTYVLBOMRx9nE)