andresWeitzel / Schedule_Events_DynamoDB_AWS

App para la ejecución de operaciones y eventos programados sobre base de datos implementado con NodeJs, DynamoDB, Systems Manager Parameter Store, Api-Gateway, Serverless-Framework, Lambda, Scheduled events, entre otros.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Index app

Schedule_Events_DynamoDB_AWS

App para la ejecución de operaciones y eventos programados sobre base de datos implementado con NodeJs, DynamoDB, Systems Manager Parameter Store, Api-Gateway, Serverless-Framework, Lambda, Scheduled events, entre otros.. El código del proyecto y la documentación de este (menos doc técnica), ha sido desarrollado/a en inglés.


Índice 📜

Ver

Sección 1) Descripción, configuración y tecnologías

Sección 2) Endpoints y Ejemplos

Sección 3) Prueba de funcionalidad y Referencias



Sección 1) Descripción, configuración y tecnologías

1.0) Descripción 🔝

Ver

1.1) Ejecución del Proyecto 🔝

Ver
  • Una vez creado un entorno de trabajo a través de algún ide, clonamos el proyecto
git clone https://github.com/andresWeitzel/Microservice_Mercadolibre_Users_AWS
  • Nos posicionamos sobre el proyecto
cd 'projectName'
  • Instalamos Serverless Framework de forma global si es que aún no lo hemos realizado
npm install -g serverless
  • Verificamos la versión de Serverless instalada
sls -v
  • Instalamos todos los paquetes necesarios
npm i
  • Instalamos dynamodb con la configuración de librerias que se encuentran dentro de .dynamodb. Procedemos a instalar dicho servicio
sls dynamodb install
  • Creamos un archivo para almacenar las variables ssm utilizadas en el proyecto (Más allá que sea un proyecto con fines no comerciales es una buena práctica utilizar variables de entorno).
    • Click der sobre la raíz del proyecto
    • New file
    • Creamos el archivo con el name serverless_ssm.yml. Este deberá estar a la misma altura que el serverless.yml
    • Añadimos las ssm necesarias dentro del archivo.
      # Keys
      X_API_KEY : 'f98d8cd98h73s204e3456998ecl9427j'
    
      BEARER_TOKEN : 'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c'
    
    
    
  • Ejecutamos el proyecto
sls offline start

1.2) Configuración del proyecto desde cero 🔝

Ver
  • Creamos un entorno de trabajo a través de algún ide, luego de crear una carpeta nos posicionamos sobre la misma
cd 'projectName'
  • Instalamos Serverless Framework de forma global si es que aún no lo hemos realizado
npm install -g serverless
  • Verificamos la versión de Serverless instalada
sls -v
  • Inicializamos un template de serverles
serverless create --template aws-nodejs
  • Inicializamos un proyecto npm
npm init -y
  • Instalamos serverless offline
npm i serverless-offline --save-dev
  • Agregamos el plugin dentro del serverless.yml
plugins:
  - serverless-offlline
  • Instalamos serverless ssm
npm i serverless-offline-ssm --save-dev
  • Agregamos el plugin dentro del serverless.yml
plugins:
  - serverless-offlline-ssm
  • Instalamos serverless-dynamoDB-local (No dynamoDB)
npm install --save serverless-dynamodb-local
  • Agregamos el plugin dentro del serverless.yml
plugins:
  - serverless-dynamodb-local
  • Reemplazamos la plantila serverless.yml inicial por la siguiente como modelo (cambiar nombre, etc)...
service: nombre

frameworkVersion: '3'

provider:
  name: aws
  runtime: nodejs12.x
  stage: dev
  region : us-west-1
  memorySize: 512
  timeout : 10

plugins:
    - serverless-dynamodb-local
    - serverless-offline-ssm
    - serverless-offline  

functions:
  hello:
    handler: handler.hello

custom:
  serverless-offline:
    httpPort: 4000
    lambdaPort: 4002    
  serverless-offline-ssm:
    stages:
      - dev
  dynamodb:
    stages:
      - dev
  • Descargamos la Java Runtime Engine (JRE) versión 6.x o posterior. Descargar desde aquí
  • Descargamos el .jar que contendrá toda la configuración para la instalación . Descargar desde aquí
  • Una vez descargado el .jar en formato .tar descomprimimos y copiamos todo su contenido dentro de la carpeta que se cread de dynamo en el proyecto (.dynamodb). Si esta carpeta no está, la creamos dentro de proyecto.
  • Procedemos a instalar el servicio de dynamodb
sls dynamodb install
  • Ejecutamos el proyecto
sls offline start

1.3) Tecnologías 🔝

Ver
Tecnologías Versión Finalidad
SDK 4.3.2 Inyección Automática de Módulos para Lambdas
Serverless Framework Core v3 3.23.0 Core Servicios AWS
Serverless Plugin 6.2.2 Librerías para la Definición Modular
Systems Manager Parameter Store (SSM) 3.0 Manejo de Variables de Entorno
Amazon Api Gateway 2.0 Gestor, Autenticación, Control y Procesamiento de la Api
NodeJS 14.18.1 Librería JS
VSC 1.72.2 IDE
Postman 10.11 Cliente Http
CMD 10 Símbolo del Sistema para linea de comandos
Git 2.29.1 Control de Versiones

Plugin Descripción
Serverless Plugin Librerías para la Definición Modular
serverless-offline Este complemento sin servidor emula AWS λ y API Gateway en entorno local
serverless-offline-ssm busca variables de entorno que cumplen los parámetros de SSM en el momento de la compilación y las sustituye desde un archivo

Extensiones VSC Implementados.

Extensión
Prettier - Code formatter
YAML - Autoformatter .yml (alt+shift+f)


Sección 2) Endpoints y Ejemplos.

2.0) Endpoints y recursos 🔝

Ver

2.1) Ejemplos 🔝

Ver

Sección 3) Prueba de funcionalidad y Referencias.

3.0) Prueba de funcionalidad 🔝

Ver

3.1) Referencias 🔝

Ver

Schedule-cron

Herramientas

Api Gateway

Librerías


About

App para la ejecución de operaciones y eventos programados sobre base de datos implementado con NodeJs, DynamoDB, Systems Manager Parameter Store, Api-Gateway, Serverless-Framework, Lambda, Scheduled events, entre otros.

License:GNU General Public License v3.0


Languages

Language:JavaScript 100.0%