4.4 KiB
BSMSapp
Best Stock Management System application.
Descripción de los módulos
Api gateway
Recibe pedidos HTTPS. Pueden ser POST o GET. EN el caso de GET, va directo a la lambda de lectura de la tabla. En el caso de POST, se encola en el SQS para luego ir a la lambda.
Cloudfront
Realiza cache de la API y del S3.
Dynamo DB
Guarda los datos de los stocks de los usuarios.
Lambda
Definimos 2 lambdas. Una se encarga de realizar escrituras al DynamoDB y la otra de realizar lecturas.
S3
Definimos 3 buckets. Uno para logs y dos para front.
SQS
Se encarga de encolar POSTs recibidos por la API. Luego dispara la lambda correspondiente
VPC
Este módulo es externo.
Descripción y referencia de funciones y meta-argumentos
Los links solo hacen referencia a la primera aparición en cada archivo.
Funciones
Junto a cada función se especifica para qué se usa.
file: devuelve como string el contenido del archivo
index.html
. Esto es utilizado para luego poder modificarlo (pues actúa como un template ya que tiene la variableENDPOINT
parametrizada) y usarlo. > - organization/datasources.tf
flatten: retorna una lista de una dimensión con los elementos de una lista de listas pues así lo espera el módulo. > - organization/vpc.tf
format: arma el
path
para un filename dado. > - modules/s3/main.tf
jsonencode: arma un string con un objeto JSON. > - modules/apigw/main.tf
length: calcula el largo de
custom_origin_config
para saber si debe hacer unfor_each
sobre sus elementos, es decir, para saber si se lo definieron en el archivo que usa el módulo en cuestión. > - modules/cloudfront/main.tf
lookup: obtiene el valor de un mapa para una key. > - modules/cloudfront/main.tf
replace: modifica el
path
para hacerlo válido. > - modules/s3/main.tf > - organization/cloudfront.tf
sha1: computa el
SHA1
del string de la configuración del apigw para saber si se necesita forzar el redeploy del módulo. > - modules/apigw/main.tf
try: en caso de que no haya objetos, se utiliza un objeto vacío. > - modules/s3/main.tf > - organization/s3.tf
Meta-argumentos
count > - modules/s3/main.tf
depends_on > - modules/apigw/main.tf > - organization/apigw.tf > - organization/cloudfront.tf > - organization/lambda.tf > - organization/sqs.tf
for_each > - modules/cloudfront/main.tf > - modules/dynamodb/main.tf > - modules/lambda/main.tf > - modules/s3/main.tf > - organization/lambda.tf > - organization/s3.tf
lifecycle > - modules/apigw/main.tf
Diagrama de arquitectura deployada

Rúbrica
Alumno | Legajo | Participación |
---|---|---|
Bellver, Ezequiel | 61268 | 25% |
Burgos, Satiago Eduardo | 55193 | 25% |
Lo Coco, Santiago | 61301 | 25% |
Oillataguerre, Amparo | 58714 | 25% |
Autores
- Bellver, Ezequiel (61268)
- Burgos, Santiago Eduardo (55193)
- Lo Coco, Santiago (61301)
- Oillataguerre, Amparo (58714)