Trabajando con Azure Functions y TypeScript
27 Dec 2019Azure Functions es una solución de Microsoft para el procesamiento de datos, APIS y microservicios de computación sin servidor. Posee una serie de ventajas y características a tener en cuenta:
- Ofrece una escalabilidad flexible basado en el volumen de trabajo.
- Cuenta con un modelo de programación integrado basado en desencadenadores y enlaces que permiten conectarse a diferentes eventos.
- Un repertorio de herramientas DevOps integradas, además de una experiencia de programación End-to-End que conduce desde el desarrollo y compilación hasta la depuración e integración continua además de la entrega continua (CI/CD).
Se basa en una arquitectura Serverless basada en microservicios (“Funciones como servicio”), por lo que recomendable es dividir las funciones, que se regularán en función de la demanda. Por lo que es auto-escalado, pagamos por servicio y no nos obliga a gestionar la infraestructura.
Requisitos
Para hacer una demostración de cómo funciona Azure Functions con TypeScript y familiarizarnos con el entorno, vamos a necesitar las siguientes herramientas:
- Visual Studio Code.
- Extensión de Azure Functions para VS Code.
- Tener instalado Nodejs
Posteriormente, debemos tener instalada la versión correspondiente de Azure Functions Core Tools que nos permitirá trabajar en local, conectarnos en nuestra cuenta de Azure y, además, desplegar nuestros function projects.
Para ello, en MacOS utilizaremos el siguiente comando:
Creando un Functions project en local
El procedimiento para crear nuestro proyecto en local es bastante intuitivo, solo tendremos que ejecutar el siguiente comando:
Y seleccionar qué tipo de proyecto queremos crear, el asistente nos ofrecerá las siguientes opciones:
Ello te generará un archivo package.json y tsconfig.json que te ayudarán a transcompilar todo el proyecto a JavaScript. Para comprobar que todo ha sido instalado correctamente debemos ejecutar el siguiente comando el el directorio donde tengamos el proyecto:
Donde podremos comprobar que el servicio está corriendo en la dirección: http://0.0.0.0:7071
Para crear nuestro primer ejemplo usaremos el comando:
Se seleccionamos la octava opción: 8. HTTP trigger, nos generará un archivo index.ts con el siguiente código:
Si ejecutamos mediante consola los siguientes comandos:
Debería darnos el siguiente output:
De esta forma, podremos comprobar que la aplicación está perfectamente desplegada haciendo una petición a:
Desplegar la aplicación en Azure
Por último, para desplegar nuestra aplicación en Azure, debemos utilizar el siguiente comando:
Este comando desplegará automáticamente tu Function en tu cuenta. Incluso podríamos configurar el entorno para desplegar nuestra aplicación en un entorno de staging o usar Circle-CI y JEST comprobar que todo está correcto antes de hacer push al branch de producción.
Hasta aquí esta primera toma de contacto con TypeScript y Azure, sin duda habrá más posts similares en un futuro.
Happy coding!