Contenido del curso

Recursos que crea Serverless en AWS

Resumen

Cuando despliegas una aplicación con Serverless Framework, parece magia: tres archivos en tu editor y, de repente, once recursos vivos en AWS. Aquí te muestro qué pasa por debajo, cómo se conectan Lambda y API Gateway, y por qué CloudFormation es la pieza que lo sostiene todo.

¿Qué recursos crea Serverless Framework en AWS?

Una aplicación mínima con un solo endpoint genera entre nueve y once recursos en tu cuenta de AWS. No los creas tú a mano: los crea Serverless Framework apoyándose en CloudFormation [01:30].

Para verlos, entra a la consola web de AWS y abre CloudFormation. Ahí vas a encontrar tu aplicación listada como un stack con el nombre que definiste en el serverless.yml. Dentro del stack tienes tres pestañas que valen oro:

  • Eventos: muestra el instante exacto en que se creó cada recurso, ideal para debuguear errores complejos.
  • Recursos: lista los once componentes que conforman tu app.
  • Template: el archivo que tendrías que escribir tú si quisieras hacer todo esto sin Serverless Framework.

¿Qué es un stack en CloudFormation? Es la agrupación de todos los recursos de AWS que forman una aplicación. CloudFormation lo trata como una unidad para crear, actualizar o eliminar todo junto.

¿Cómo se conectan Lambda y API Gateway en una app serverless?

De esos once recursos, dos son los protagonistas: una función Lambda que contiene tu código y un API Gateway que la expone por HTTP [03:20].

Si entras al servicio Lambda en la consola, vas a ver tu función con el mismo código del handler.js, idéntico al que escribiste localmente. Pero una Lambda sola no se puede invocar desde el navegador. Necesita un disparador, y ahí entra API Gateway.

En API Gateway encuentras el recurso /hello (el path que definiste en serverless.yml) y el método GET configurado para invocar tu Lambda. Esa conexión es la que permite que al abrir la URL en tu navegador, el evento HTTP llegue a tu función y devuelva el mensaje.

¿Por qué Serverless Framework usa CloudFormation?

Porque CloudFormation guarda el estado de tu aplicación. Serverless Framework por sí solo no sabe si ya existe una app con ese nombre, pero CloudFormation sí. Por eso se apoya en él para desplegar, actualizar, borrar y administrar todo el ciclo de vida.

¿Cómo actualizo y elimino una aplicación serverless?

Actualizar es trivial. Cambias el mensaje en tu handler.js, guardas, y vuelves a ejecutar:

bash sls deploy

CloudFormation detecta los cambios y actualiza solo lo necesario. En el ejemplo, la actualización tomó 52 segundos [05:40]. Recargas la misma URL y ves el nuevo mensaje. La ruta no cambia porque la aplicación es la misma, solo se actualizó.

¿Cómo elimino una aplicación serverless completa? Ejecuta serverless remove en la carpeta del proyecto. CloudFormation borra los once recursos en orden, sin que tengas que tocar la consola.

Eliminar a mano esos once recursos sería tedioso y propenso a errores: olvidas un permiso, una política, un endpoint, y empiezas a pagar por basura olvidada. Con un solo comando, Serverless Framework hace el trabajo limpio.

¿Qué pasa después de ejecutar serverless remove?

En CloudFormation vas a ver el mensaje delete in progress y un historial de cada recurso eliminado uno a uno. Al final, el stack holamundo-dev desaparece por completo [07:50].

Si recargas la URL inmediatamente, puede que veas un mensaje forbidden. Es normal: AWS necesita unos minutos para liberar el dominio internamente. Después de ese tiempo, la ruta deja de existir.

¿Por qué importa la velocidad de despliegue en serverless?

La rapidez con la que puedes crear, actualizar y destruir infraestructura en el ecosistema serverless es una de sus mayores ventajas frente a sistemas tradicionales. En menos de un minuto pasas de un cambio en tu editor a producción, y en otro minuto eliminas todo sin dejar rastro.

Esto te da libertad para experimentar: levantas un entorno, pruebas una idea, lo tumbas. Sin servidores corriendo en segundo plano, sin facturas inesperadas.

Ahora te toca a ti. Crea tu propia aplicación, cambia el mensaje, y si te atreves, monta dos rutas diferentes en el mismo serverless.yml. Cuéntanos en los comentarios qué tal te fue y qué recursos viste aparecer en tu CloudFormation.