Muy bien, lo que voy a mostrarte ahora es algo que quizás no esperes sobre la integración entre el motor de reglas y Lambda. Entonces, la función Lambda, omitamos esto por ahora. La función Lambda que estoy utilizando se ve un poco así, ¿verdad? Así que estás configurando, tienes una biblioteca de trazado. Te mostraré qué es la biblioteca de trazado y hablaré de ella más adelante. Pero en realidad, tu función Lambda simplemente hace algo y lanza una excepción, ¿verdad? Y eso es básicamente todo. Y si miras esto, ya sabes, si miras esta architecture aquí, esperarías ver la excepción de inmediato.
Bueno, lo curioso es que la forma en que el motor de reglas se integra con Lambda es de forma asíncrona, ¿verdad? Entonces, el motor de reglas envía el mensaje al servicio Lambda. El servicio Lambda dice, genial, lo tengo, 202. Y luego tu función Lambda se coloca en una cola y se ejecuta de forma asíncrona. Y solo entonces, cuando esa ejecución se completa, en algún lugar, idealmente en algún archivo de registro, verás el resultado de la ejecución de tu función Lambda, ¿verdad? Por eso, por supuesto, cuando esto sucede con un dispositivo, ya sabes, piensas, sí, lo tengo bajo control. Puedo ir al registro de la función Lambda y puedo mirar allí y puedo ver que en realidad la función Lambda falló. Pero idealmente, en realidad usarías algunas herramientas de trazado y, ya sabes, algunas herramientas que te permitan habilitar el registro y monitoreo en tus aplicaciones, para que puedas ver estas cosas relativamente fácilmente.
Y una de estas herramientas es Lambda Power Tools, y Lambda Power Tools es en realidad una biblioteca de código abierto. Está disponible para Typescript. También está disponible para otros lenguajes como Python, por ejemplo. Y lo que hace es proporcionarte un conjunto de utilidades que puedes integrar en tu aplicación de JavaScript, para que puedas crear fácilmente registro estructurado, puedes crear métricas, incluso puedes construir tus propias métricas, y también de alguna manera, ya sabes, ver las trazas en un servicio que se llama X-ray, ¿verdad? Entonces, quiero decir, por supuesto, esto funciona si estás integrando con servicios de AWS. Si estás integrando con otros tipos de servicios, es posible que desees identificar diferentes herramientas de observabilidad que puedes utilizar, ¿verdad?
La forma en que instalarías Lambda Power Tools es básicamente utilizando capas de Lambda o puedes usar NPM. Y puedes instrumentar usando MIDI, que es una biblioteca de middleware muy famosa para Lambda, o puedes hacerlo con decoradores o puedes hacerlo manualmente. Entonces, en realidad se ve bastante bien si miras el código de TypeScript, ¿verdad? Aquí solo estoy usando módulos de Node. No voy a entrar en detalles sobre eso. Pero luego puedes crear tu trazador y registrador, y luego simplemente puedes usar MIDI para literalmente inyectarlos en tu función Lambda. ¿Verdad? Entonces, con lo que tengo aquí, básicamente todas tus trazas van a ir desde la invocación de tu función Lambda hasta X-ray, ¿verdad? Veamos. Esto en realidad no se ve muy bien. Así que tal vez simplemente voy a cambiar y mostrártelo rápidamente. Todavía me quedan 56 minutos. Eso sería bueno. De acuerdo. Entonces, básicamente lo que he hecho aquí, he enviado un mensaje desde un simulador de dispositivo IoT, que está utilizando MQTT.js como biblioteca. Así que esta es mi aplicación cliente y esto es el... En este caso, es el motor de reglas, y este es el contexto de Lambda del servicio Lambda.
Comments