Creación y Gestión de Aplicaciones con Serverless Framework

Clase 10 de 25Curso de Serverless Framework en AWS

Contenido del curso

Desarrollando con Serverless Framework

Resumen

Tres archivos de código pueden generar más de once recursos en la nube sin que lo notes. Al trabajar con Serverless Framework, gran parte de la complejidad de aprovisionar infraestructura en AWS queda oculta, y entender qué sucede por debajo es fundamental para depurar errores, optimizar costos y dominar el ciclo de vida de una aplicación serverless.

¿Qué recursos crea Serverless Framework en AWS?

Cuando se despliega una aplicación con Serverless Framework, este no interactúa directamente con cada servicio de AWS por separado. En su lugar, se apoya en CloudFormation [01:35], el servicio de AWS que permite definir y aprovisionar infraestructura como código. CloudFormation recibe un template —un archivo de configuración extenso y difícil de leer— que describe todos los recursos necesarios para que la aplicación funcione.

Al acceder a la consola web de AWS y buscar CloudFormation, aparece el stack con el nombre de la aplicación [01:49]. Un stack es el conjunto completo de recursos agrupados bajo un mismo despliegue. En la pestaña de Eventos se puede revisar el orden cronológico en que cada recurso fue creado, dato muy útil para debuggear problemas complejos [02:14]. En la pestaña de Recursos se confirma que, a pesar de tener solo tres archivos y un YAML muy corto, se generaron once recursos en la nube [02:30].

¿Qué papel juegan Lambda y API Gateway?

Dentro de esos once recursos destacan dos componentes principales:

  • AWS Lambda [03:05]: contiene exactamente el mismo código del archivo handler.js. Desde la consola web se puede leer la lógica, ver el package.json y confirmar que coincide con lo que existe en el repositorio local.
  • API Gateway [03:45]: es el servicio que expone la función Lambda a través de un evento HTTP. Sin API Gateway, la función existiría pero no sería invocable desde un navegador. En su configuración aparece el path /hello y el método GET, ambos definidos previamente en el archivo serverless.yaml [04:02].

Esta separación entre la lógica (Lambda) y la exposición (API Gateway) es la base de la arquitectura serverless en AWS.

¿Cómo se actualiza y elimina una aplicación serverless?

Actualizar la aplicación es tan sencillo como modificar el código y ejecutar sls deploy [04:40]. CloudFormation guarda el estado de la aplicación, lo que significa que sabe si ya existe un stack con ese nombre y aplica solo los cambios necesarios. Serverless Framework por sí solo no almacena ese estado; delega esa responsabilidad en CloudFormation [05:05].

Durante la actualización se puede observar en la consola:

  • Un contador con los segundos transcurridos.
  • El número de recursos actualizados respecto al total.
  • La confirmación de que el stack se actualizó correctamente.

En el ejemplo, la actualización tardó apenas cincuenta y dos segundos [05:42]. Al recargar la misma URL —que no cambia porque la aplicación mantiene su ruta— el nuevo mensaje aparece de inmediato [05:55]. Esa velocidad de iteración es una de las grandes ventajas del ecosistema serverless frente a otros sistemas de cómputo.

¿Cómo se destruyen todos los recursos con un solo comando?

Para eliminar la aplicación y liberar todos los recursos, se utiliza el comando serverless remove [06:35]. Este comando le indica a CloudFormation que borre el stack completo, eliminando uno a uno los once recursos creados. Hacerlo de forma manual sería tedioso y propenso a errores, incluso en una aplicación tan pequeña [07:00].

Al regresar a CloudFormation se ve el mensaje de borrado en progreso [07:12]. Tras unos segundos, el stack desaparece. Si se intenta acceder a la URL anterior, el navegador muestra un error porque la ruta ya no existe. AWS necesita unos minutos adicionales para liberar completamente el nombre de dominio y otros recursos internos [07:35].

¿Por qué CloudFormation es clave en el ciclo de vida serverless?

CloudFormation actúa como el administrador central del estado de la infraestructura. Gracias a él, Serverless Framework puede:

  • Crear recursos de forma reproducible.
  • Detectar diferencias entre el estado actual y el deseado.
  • Actualizar solo lo necesario.
  • Eliminar todo de manera limpia y ordenada.

Entender esta relación entre Serverless Framework y CloudFormation permite tomar mejores decisiones al escalar proyectos, resolver errores y mantener el control sobre los costos en AWS.

Si quieres practicar, crea tu propia aplicación con un mensaje distinto o atrévete a definir dos rutas diferentes. Comparte tu experiencia y cuéntanos cómo te fue en los comentarios.