Tutorial : Full RESTfull API con AWS, Terraform, y Serverless Framework

Hace ya algunos años que he querido hacer un tutorial como este, en dónde de manera sencilla pueda explicar los distintos pasos de la creación de un API REST, o al menos como lo he aprendido a hacer basado en experiencia y errores.

Una de las razones del por qué nunca comencé con este proyecto es debido a que crear un API puede ser tan complejo como uno quiera, y nunca encontré el tiempo para realizarlo, por lo que decidí lanzar este tutorial por partes e iré publicando las distintas partes a medida que las vaya realizando.

En este tutorial crearemos un Full RESTfull API con seguridad basada en tokens utilizando AWS, Swagger, Terraform, DynamoDB, SSM, y Serverless Framework quién generará los recursos del API Gateway y Lambdas.

 

Estado Proyecto En Progreso
Fecha Inicio 17/05/2020
Fecha Actualización 17/05/2020
Fecha de Término
Capítulos listos 2/10
Link Youtube Playlist https://www.youtube.com/playlist?list=PLCjIDwuXOgwR64ScpUf6WLnW6j2jdkREX

 

Indice

  1. Entendiedo la necesidad. API de manejo de datos de usuarios y los datos requeridos.
  2. Conociendo las herramientas que se utilizarán y el por qué las usaremos.
  3. Diseñando la API utilizando Swagger. Antes de crear el API debemos saber que información recibirá y que información retornará.
  4. Generando la base de datos DynamoDB, y el recurso relacionado de SSM utilizando Terraform.
  5. Generando los endpoints utilizando Serverless Framework.
  6. Generando el CRUD de la aplicación. – Create, Read, Update, Delete –
  7. Asegurando nuestra API.

Extra

  1. Bloqueo de recursos en Terraform para impedir eliminaciones accidentales.
  2. Endpoint que lista los usuarios con paginación.
  3. Sincronizando DynamoDB con Redshift para realizar operaciones analiticas.

Leer más

Usando TravisCI y Github Package Repository (GPR)

TRAVIS CI

Travis-CI es un sistema de Integración Continua, y es una herramienta muy importante en el mundo de la automatización de pasos a producción, mientras que GitHub Package Repository corresponde a un sistema de manejo de paquetes y dependencias relativamente nuevo proporcionado por GitHub.

Estamos modificando el flujo de automatización que tenemos de paso a producción, y un amigo me recomendó enormemente ( y reiteradamente ) que comenzara a usar TravisCI.

Hace bastante no escribía un blogpost, sin embargo pasé un par de horas que no tenía planeadas en invertir en esta conexión así que creo que amerita escribir algo al respecto.

Antes de iniciar :

  1. Debes de tener una cuenta en GitHub
  2. Debes de tener una cuenta en TravisCI
  3. Asumiré que la conexión entre ambos ya está realizada y tienes un proyecto que incluya un paquete alojado en GITHub Package Repository.

Leer más