¿Cómo crear tu primera aplicación serverless?
Crear una aplicación serverless puede parecer un desafío, especialmente si te enfrentas por primera vez al Serverless Framework. Pero no te preocupes, en esta guía te llevaremos paso a paso en el proceso. ¡Prepárate para iniciar esta emocionante travesía tecnológica!
¿Qué es el Serverless Framework?
El Serverless Framework es una herramienta invaluable que permite a los desarrolladores crear y desplegar funciones serverless con facilidad. A pesar de su nombre, aún necesitas un proveedor de nube para alojar tus funciones, como Amazon Web Services (AWS). Sin embargo, gracias a su naturaleza modular, es agnóstico en cuanto al proveedor y el lenguaje de programación, ofreciéndote versatilidad.
¿Cómo iniciamos el proceso?
Primero, necesitas sentirte cómodo con el Serverless Framework. Para ello, familiarízate con los comandos esenciales que te ayudarán durante el desarrollo. Puedes invocar el framework simplemente escribiendo serverless
o, si prefieres, SLS
. Ambas invocaciones ofrecen accesos a las plantillas y comandos disponibles.
Uso de comandos para crear un servicio
Para crear tu primera aplicación, utilizaremos la plantilla HolaMundo
, que puedes obtener desde un repositorio en GitHub. Aquí tienes un comando que te será útil:
serverless create --path hola-mundo --template-url [ruta-del-repositorio]
Donde --path
define el directorio de almacenamiento de tu proyecto y --template-url
define la plantilla base, que en este caso proviene de un repositorio público de GitHub.
¿Qué archivos conforman nuestra aplicación serverless?
Al crear tu aplicación, notarás varios archivos esenciales y, para que todo funcione correctamente, es clave entender el propósito de cada uno:
- package.json: Definiciones de dependencias de tu proyecto. Aquí se destaca la dependencia a Serverless versión 3.21.0.
- handler.js: Contiene la lógica de tu función Lambda. Utiliza una función flecha que recibe objetos
event
y context
y devuelve una respuesta HTTP simple.
- serverless.yaml: Tal vez el archivo más crítico, ya que define la configuración del servicio. Incluye secciones para el
service
, provider
y functions
.
¿Cómo configuramos nuestro archivo serverless.yaml?
Aquí es donde tu aplicación serverless toma forma. A continuación, las secciones clave:
- service: Nombre de la aplicación, por ejemplo, "HolaMundo".
- provider: Configura el proveedor de nube, AWS en este ejemplo, y define el runtime (e.g. Node.js 14).
- functions: Aquí definimos las funciones a ser ejecutadas, como
helloWorld
. Incluirás especificaciones para handlers y triggers de eventos HTTP.
Ejemplo básico de un archivo serverless.yaml
service: hola-mundo
provider:
name: aws
runtime: nodejs14.x
functions:
helloWorld:
handler: handler.hello
events:
- http:
path: hello
method: get
¿Cómo desplegar nuestra aplicación?
El despliegue es la etapa culminante. Para hacerlo, asegúrate de estar en el directorio correcto donde está el serverless.yaml
. Luego, simplemente usa:
sls deploy
El comando deploy
ejecuta una serie de procesos que involucran AWS CloudFormation, un servicio que simplifica la infraestructura como código, creando automáticamente los recursos necesarios en AWS.
¿Qué sucede tras el despliegue?
Al finalizar, recibirás una URL abierta al público a través de la cual puedes acceder a la función desplegada. Esta aplicación ya es escalable, manejando eficientemente picos de tráfico, y aprovechando las mejores prácticas del Well-Architected Framework de AWS.
Esperamos que esta experiencia te motive a continuar explorando el mundo serverless. Con cada clase, dominarás nuevas técnicas y buenas prácticas. ¡Sigue adelante, las posibilidades son infinitas!
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?