DEV Community

Daniel San
Daniel San

Posted on

Crea una función Lambda con Serverless Framework y Datadog

En este artículo les mostraré como ocupar las dos herramientas increíbles para crear y monitorear funciones lambda… Serverless Framework y Datadog 🙌

Image description

¿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

Image description

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.

Image description

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.

Image description

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

Image description

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

Image description

Abre el proyecto creado con VSCode

Image description

Ingresamos al archivo serverless.yml y agregamos el siguiente código

custom:
  datadog:
    site: DATADOG_SITE
    apiKey: DATADOG_API_KEY
Enter fullscreen mode Exit fullscreen mode

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

Image description

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

Image description

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í!

Image description

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.

Image description

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 😱

Image description

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.

Oldest comments (0)