⚡ Serverless Framework v4.2.1 / v4.2.3 Soporta  AWS Sam y CloudFormation (beta)

⚡ Serverless Framework v4.2.1 / v4.2.3 Soporta AWS Sam y CloudFormation (beta)

No es raro verme por aquí hablando de herramientas de infraestructura como código (IaC), quien me ha leído antes o visto en alguno de los eventos de la comunidad sabe que me apasiona el mundo de la IaC, sea por el desafío técnico, la ubicuidad que permite o porque es un hermoso punto de conexión entre la infraestructura y el desarrollo de software.

En la pasada commitconf presente un laboratorio en el que tenía la intención de dejar preparada distintos escenarios que nos permitan probar de manera rápida algunas características de los Frameworks su compatibilidad y funcionamiento, hoy vamos a poner a prueba este laboratorio probando desplegar un Stack escrito para AWS sam con Serverless Framework (sls) versión 4.2.3.

1.Actualizando serverless framework

Actualizamos a la versión de ⚡ Serverless Framework (sls) que tiene esta funcionalidad habilitada en modo beta, v4.2.1

Importante:
La versión v4.2.1, presentaba un error en el despliegue(ver anexo), esperé a que lo resolvieran y finalmente fue resuelto en la versión v4.2.3

Versión de la que partimos:

~$ sls -version
Framework Core: 3.38.0
Plugin: 7.2.3
SDK: 4.5.1

Actualizamos …

npm i serverless -g

Comprobamos la versión:

~$ sls --version
Serverless ϟ Framework
 • 4.2.1

Utilizamos el mismo Serverless Framework para realizar una nueva actualización* … \Nueva funcionalidad a partir de la versión v4.*

$ serverless update #*
Serverless Framework has been updated to version 4.2.3

2.Descargamos el código:

El repositorio que tomaremos de ejemplo es https://github.com/olcortesb/mimic-sam, el Stack que contiene es un par de Lambdas y una DynamoDb que funciona como una pequeña base de datos temporal que explico en este artículo: Link

3.Desplegamos

Al ejecutar el comando serverless deploy o sls deploy nos piden loguearnos por los cambios de licencia de Serverless Framework

Luego de loguearnos correctamente lanzamos el comando nuevamente, pero esta vez pasamos todos los parámetros que la documentación nos indica: link

sls deploy \              # tambien puede usarse serverless deploy
--stack sam-lab-sls \     # Nombre del Stack
--region eu-west-2  \     # Region
--aws-profile olcortesb \ # perfil configurado en aws config 
--stage dev               # Ambiente

Finalmente, el Stack es desplegado utilizando Serverless Framework y un archivo de configuración de AWS sam

Probando actualizar un Stack existente

Aprovechando que tengo el laboratorio con los pipelines armados, cree una nueva rama en el repositorio de AWS sam y cambien el pipeline para que despliegue con Serverless Framework en vez de AWS sam, configuramos el login y lanzamos …

Importante
Hay que colocar el nombre del Bucket tan como lo tenía creado el Stack que estamos actualizando

Borrar el Stack

⚠️ NO olvida borrar el Stack:

aws cloudformation delete-stack \
 --stack-name sam-lab-sls \
 --region eu-west-2

Conclusiones:

  • La versión v4.2.1 de Serverless Framework trajo una nueva funcionalidad, compatibilidad con AWS sam y CloudFormation; sin embargo, no pudimos probarla por un issue que se presentó en esta versión

  • La versión v4.2.3 resolvió el issue que se había presentado en la inicial, y pude realizar las pruebas, desplegando un nuevo Stack y actualizando uno existente.

  • Es una funcionalidad que es interesante desde la reutilización de viejos Stack, como un camino a estandarizar las distintas herramientas.

Anexo:

Error versión v4.2.1

Error que me encontré con la versión v4.2.1

Referencias: