Por último, pero no menos importante, scale en milisegundos. Así que, basándonos en tu patrón de tráfico, nos encargamos de scaling tu función Lambda y de responder a todas las solicitudes que llegan. Así que, normalmente, desde la perspectiva de un desarrollador, lo que ves es que estás escribiendo algo de code, como puedes ver en la izquierda de esta diapositiva, y luego lo subes a tu cuenta de AWS, y ocurre algo de magia, y empiezas a tener una API que funciona.
La realidad es que hay mucho más. Así que la pregunta ahora es, ¿alguna vez has pensado cómo funciona Lambda bajo el capó? Así que echemos un vistazo a eso. En primer lugar, hay dos modelos operativos de las funciones Lambda. El primero es la invocación asíncrona, donde, por ejemplo, tienes una puerta de enlace API que expone tu API, llega una solicitud de un cliente, y se dispara una función Lambda con la respuesta, y luego sirves la respuesta de manera sincrónica a tu cliente. La otra opción es la invocación asíncrona, donde en este caso tienes un servicio que está empujando un evento al servicio Lambda, el servicio Lambda almacena el evento en una cola interna de eventos, y luego la función Lambda empieza a recuperar estos eventos de manera lenta pero constante y a trabajar en ellos. El solicitante, en este caso Amazon EventBridge, por ejemplo, recibe directamente un reconocimiento y nada más. Y esas son las dos formas en que funciona la invocación de Lambda.
Así que, si vemos en el gran esquema de las cosas, cómo desde lo que ves en la izquierda de la diapositiva, ya sea que haya varios servicios o incluso si son sincrónicos o no, están enviando una solicitud al servicio AWS Lambda, que es el gran rectángulo que está dentro de esta diapositiva. Y cómo moverse hacia tu code que está en el extremo derecho de esta diapositiva, donde hay un sandbox MicroVM, es un viaje interesante. Y especialmente, quiero destacar primero lo que está pasando dentro de tu sandbox. El sandbox es donde se ejecuta tu code. Ahora, si piensas en eso, tu MicroVM, donde está el code que has escrito y es operacionalizado por nosotros, se ejecuta dentro de un Worker. Y obviamente, no hay solo un Worker. Hay muchos más. Normalmente en AWS, tenemos varias zonas de disponibilidad. Y como puedes ver aquí, tienes varios Workers ejecutándose dentro de una zona de disponibilidad. Y la zona de disponibilidad es un centro de data. Así que piensa en cómo se ve un centro de data, y esa es tu zona de disponibilidad. Pero normalmente en AWS, cada vez que creamos una región, está compuesta por varias zonas de disponibilidad. Por lo tanto, cada vez que estás empujando el code dentro de Lambda, automáticamente, vas a tener tu code que está disponible en varios centros de data. No tienes que hacer nada. Solo te enfocas en qué región quieres desplegar y cuál es la lógica de negocio. Y nosotros nos encargamos de no solo operacionalizar el code, sino también de hacerlo altamente disponible en toda nuestra infraestructura. Así que ahora vamos a profundizar en el modo de invocación y cómo funciona dentro de la architecture. Así que en el modo sincrónico, lo que pasa es, por ejemplo, en la puerta de enlace API está llamando de manera sincrónica, a un servicio frontend que está dentro del servicio AWS Lambda que está devolviendo una respuesta inmediata porque lo que pasa es que está invocando a un worker específico, poniendo en marcha un micro VM y tu code empieza a ejecutarse y devuelve inmediatamente la respuesta o el error al cliente. En cambio, cuando estás pensando en el modo de invocación para las funciones Lambda síncronas, es ligeramente diferente. Así que en este caso, por ejemplo, tenemos SNS que está empujando un evento en un mensaje en el frontend que el frontend está almacenando dentro de una cola interna el mensaje específico el llamador recibe un reconocimiento simplemente diciendo sí, hemos tenido en cuenta tu solicitud y luego entras dentro de la cola interna.
Comments