Skip to content

Arquitectura base para proyecto serverless usando aws-lambda, nodes, typescrip y dynamodb.

Notifications You must be signed in to change notification settings

drusystem/aws-lambda-nodejs-typescript-dynamodb

Repository files navigation

SWAPI-LAMBDA

API "The Star Wars API" realizada en NodeJS bajo el framework serverless para despliegue en AWS.

Prerequisitos

  • Tener instalador Docker para DynamoDB en local.
  • Tener configurado el usuario AWS CLI con los permisos correspondientes. IAM Permisos

Ejecutar proyecto localmente

Clonar el proyecto

  git clone https://github.com/drusystem/aws-lambda-nodejs-typescript-dynamodb.git

Ingresar a la carpeta del proyecto

  cd aws-lambda-nodejs-typescript-dynamodb

Instalar dependencias

  npm install

Desplegar contenedor docker

  docker-compose up -d

Crear tabla "reto-indra-dev" en el contenedor de dynamodb-local

  http://localhost:8001/create-table

Creación de tabla

Configurar variables de entorno en el archivo "serverless.yml"

  STAGE: ${sls:stage}
  DYNAMODB_TABLE: ${self:service}-${sls:stage}
  SWAPI_URL: https://swapi.py4e.com/api

Inicializar servicio local

  npm run start

APIS disponibles

Listar personas de SWAPI

  GET http://localhost:3000/peoples

Obtener una persona por id de DynamoDB

  GET http://localhost:3000/peoples/${id}

Obtener una persona por id de SWAPI

  GET http://localhost:3000/peoples/${id}
Headers Type Description
provider string Se debe enviar el valor de external_api para que la API valide que debe obtener la data de SWAPI

Crear persona en DynamoDB

  POST http://localhost:3000/peoples
Body Type Description
nombre string Campo Requerido
altura string Campo Requerido
masa string Campo Requerido
color_pelo string Campo Requerido
color_piel string Campo Requerido
color_ojos string Campo Requerido
anio_nacimiento string Campo Requerido
genero string Campo Requerido
mundo_natal string Campo Requerido
peliculas array[string] Campo Requerido
especies array[string] Campo Requerido
vehiculos array[string] Campo Requerido
naves_estelares array[string] Campo Requerido

Producción

Generar package

Generar el build de la aplicación ( dist / .serverless)

  npm run build

Despliegue

Antes de ejecutar el deploy, verificar se cumpla los requisitos previos definido en la sección Prerequisitos respecto a los permisos IAM del usuario asignado al AWS-CLI.

  npm run deploy

Despliegue lambda

Desistalación

Al remover las funciones lambda, se retirará todos los servicios relacionados a ello que fueron creados por el deploy.

  npm run remove

Autor

About

Arquitectura base para proyecto serverless usando aws-lambda, nodes, typescrip y dynamodb.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published