AWS Lambda es una plataforma informática sin servidor basada en eventos proporcionada por Amazon como parte de Amazon Web Services. Este servicio ejecuta código en respuesta a eventos y administra automáticamente los recursos informáticos necesarios. Se introdujo en noviembre de 2014.
¿Suena bien? No lo era para los desarrolladores de Ruby. Hasta el 29 de noviembre de 2018, Ruby no era compatible para iniciar la revolución sin servidor. Pero entonces, llegó Jets, y todo ha cambiado.
Como dice con orgullo el sitio web oficial de Ruby on Jets:
"Ruby on Jets le permite crear e implementar servicios sin servidor con facilidad, y pegar sin problemas los servicios de AWS con el lenguaje dinámico más bonito: Ruby. Incluye todo lo que necesita para crear una API e implementarla en AWS Lambda. Jets aprovecha la potencia de Ruby para que todos disfruten de los servicios sin servidor".
De hecho, trabajar con Jets, especialmente para alguien que tenga cierta experiencia en Rails o Sinatra, se convierte en algo relativamente fácil y agradable.
Para demostrarlo, en este artículo vamos a construir una sencilla aplicación sin servidor.
¿Preparado?
Solicitud de edificio
Lo que vamos a hacer, es crear una aplicación Jets muy simple. Esto nos proporcionará información básica sobre cómo crear rutas, controladores y acciones, y cómo implementar en AWS Lambda. Para mantenerlo simple y fácil, vamos a utilizar sólo un punto final, que devolverá al azar Chuck Norris broma.
Instalación
En primer lugar, vamos a instalar la gema Jets de forma global. En su consola, escriba:
A continuación, cree nuevos Jets proyecto con:
(Las opciones -mode api y -no-database no son necesarias, sólo van a acelerar un poco la instalación, ya que aquí no necesitamos ninguna base de datos ni vistas).
Ahora, en tu directorio chuck-norris-jokes ejecuta:
Entrar en localhost:8888
en su navegador, debería ver algo como esto:
Si esto es lo que ves, enhorabuena, lo has hecho todo correctamente.
Controlador y rutas
Lo que vamos a hacer ahora es crear nuestro primer controlador Jets.
En la consola escribe:
Esto creará nuestro JokesController con una acción dentro - create. Por defecto, Jets crea la ruta de tipo "get" para la acción, así que tenemos que modificarla.
En rutas.rb cambio de archivo obtener "bromas/crear" a enviar "chistes", a: "chistes#create".
Obtención de la solicitud
Para obtener algo de Chuck Norris necesitamos hacer una llamada a la Api John Doe. A continuación, vamos a responder con json que contiene la broma obtenido.
Pruebas locales
Podemos ejecutar esto localmente para probar que estamos recibiendo la respuesta esperada. Lo que vamos a hacer es realizar una petición POST a nuestro servidor local utilizando rizo
.
(Atención: asegúrate de que tu servidor sigue funcionando).
Despliegue
Siempre que tengas una cuenta de AWS con las políticas adecuadas (puedes encontrarlas en la documentación oficial de Jets), lo último que tienes que hacer es simplemente ejecutar:
Esto subirá nuestra aplicación a AWS.
Una vez finalizado el despliegue, se le proporcionará el punto final de su pasarela API (probablemente la última línea de la consola).
Pruebe su aplicación AWS Lambda
Por fin ha llegado el momento de probar la aplicación desplegada.
Podemos hacer esto usando curl de nuevo, pero ahora reemplazando localhost con el punto final de la pasarela API, que se nos proporcionó.
Resumen
Eso es todo, amigos. Espero que hayan disfrutado de este breve vistazo a Ruby on Jets y al mundo serverless.
Más información: