Crea una función Lambda con Serverless Framework y Datadog
Daniel San
Posted on December 14, 2022
En este artículo les mostraré como ocupar las dos herramientas increíbles para crear y monitorear funciones lambda… Serverless Framework y Datadog 🙌
¿Qué es Serverless Framework?
Es una herramienta Open Source diseñada para construir funciones lambda de AWS. Además esta herramienta se puede ejecutar para otros proveedores cloud como Azure o Google Cloud.
Puedes crear tu cuenta gratuita acá 👉serverless.com
¿Qué es Datadog?
Si tienes una web tienes que ocupar Datadog. Es una herramienta increíblemente completa para el monitoreo de todo lo que se te ocurra dentro de una web. Controla el CI/CD, front, back, cloud y además puedes crear paneles personalizados con la información que necesites.
Puedes crear tu cuenta gratuita acá 👉 datadoghq.com
Ahora comencemos…
Comenzamos con Serverles Framework
Primero debes ingresar en tu panel web de serverless y selecciona el menú org
Ve a la pestaña provaiders y selecciona add. Te entregará 3
formas de integrar tu cuenta de AWS. Yo prefiero la primera ya que es bastante simple y segura.
Al hacer click en Connect AWS provider se abrirá tu cuenta de AWS con un template listo con los permisos para ejecutar serverless. Selecciona crear deberas esperar a que el estado cambie a UPDATE_COMPLETE.
Vuelve a serverless y tu cuenta ya estará conectada.
Para instalar serverless en tu computador ejecuta el siguiente comando
npm install -g serverless
Ya instalado el primer comando que debes correr para crear un proyecto es serverless y te mostrará un listado de varios proyectos base que puedes ocupar. En este caso vamos a seleccionar AWS — Python — Starter
Te solicitará el nombre del proyecto y luego te pedirá hacer login en la cuenta de Serverless Framework.
Se abrirá el navegador para confirmar que es tu cuenta 👍
Luego te preguntará si quieres hacer deploy… no lo hagas aún, primero vamos a instalar el plugin de datadog.
Ingresamos en la carpeta y ejecutamos el siguiente comando:
serverless plugin install --name serverless-plugin-datadog
Debería mostrarse el plugin instalado correctamente
Abre el proyecto creado con VSCode
Ingresamos al archivo serverless.yml y agregamos el siguiente código
custom:
datadog:
site: DATADOG_SITE
apiKey: DATADOG_API_KEY
Completa los datos DATADOG_SITE y DATADOG_API_KEY, acá te doy una ayuda de donde puedes encontrar cada uno 👇
DATADOG_SITE : datadoghq.com
o puedes verificar en el siguiente enlace:
Para generar una API Key debes ingresar en el panel de Datadog y selecciona la última opción del menú, luego ingresa en Organization Settings
Luego ve a la opción API Keys
New Key, ponle el nombre, luego cópiala y pegala en DATADOG_API_KEY
Una vez configurado tu archivo serverless.yml solo debes ejecutar el siguiente comando (sls = serverless)
sls deploy
Así de fácil Serverless Framework se encargará de TODO!!! Permisos de aws, función, conectar datadog, etc…
No estás seguro de lo que pasó? Vamos a confirmar
1- Revisamos si la función Lambda se creó correctamente ✅
Ingresa en la consola de AWS y ve al servicio Lambda, la función ya está ahí!
Ingresamos y podemos ver todo el código de nuestro proyecto.
Al realizar un test deberíamos obtener el mensaje por defecto de la función hello dentro de handler.py, puedes cambiar el código en tu proyecto local y volver a ejecutar sls deploy para ver lo fácil que es subir el código.
2- El deploy al panel de Serverless se realizó correctamente ✅
Ingresamos a serverless.com y podemos ver que en el menú apps ya se encuentra la app HolaServerlessDatadog. Además nos entrega unas métricas de ejecución.
*3- Estamos recibiendo la información en Datadog correctamente * ✅
Para esta confirmación primero debemos armar un Dashboard. Para eso solo debes hacer click en el siguiente enlace:
Lambda Dashboard Template
Selecciona Clone Dashboard y dale un nombre
Ya tienes un dashboard completo con todo lo que necesitas saber sobre la función lambda que acabas de implementar 😱
Conclusión
Serverless Framework es una herramienta increíble para comenzar un proyecto con Lambda, tienes cientos de templates que puedes ocupar con tan agregar el comando template, por ejemplo con este comando ya tenemos lista una función que ejecuta un cron job en Nodejs.
serverless --template-url=https://github.com/serverless/examples/tree/v3/aws-node-scheduled-cron
Datadog es una herramienta increíble para monitoreo de absolutamente cualquier proyecto, la instalación es rápida y la creación de paneles es muy fácil. Puedes personalizarlos como quieras, de esta sabrás en todo momento lo que ocurre con tus funciones lambda.
Posted on December 14, 2022
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.