bsmsapp/README.md

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 variable ENDPOINT 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 un for_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

architecture

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)