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