Una introducción a los desencadenantes disponibles para invocar una función Lambda

Una introducción a los desencadenantes disponibles para invocar una función Lambda
AWS Lambda es un sorprendente servicio basado en la nube que revolucionó el mundo sin servidor. En realidad, es un software como servicio (SaaS) que se puede configurar de manera fácil y rápida y es útil para reducir el presupuesto general de su infraestructura en la nube. Lo que tiene que hacer es simplemente diseñar su código y ejecutarlo usando la función Lambda.

Ahora, el punto aquí es cómo se supone que debe ejecutar su código en la función y la respuesta a esto es que hay una larga lista de métodos a través de los cuales puede invocar o activar sus funciones lambda. Esto incluye muchos otros servicios de AWS que se pueden usar para llamar a la función deseada cuando sea necesario.

En este artículo, verá una breve explicación sobre los servicios y técnicas que se pueden aplicar para invocar sus funciones Lambda en Amazon.

Tipos de invocaciones

Antes de llegar más allá, discutamos los siguientes dos tipos principales de invocaciones que la función Lambda puede manejar.

  • Invocaciones sincrónicas
  • Invocaciones asincrónicas
  1. Invocaciones sincrónicas
    En invocaciones sincrónicas, el servicio que invoca la lambda tiene que esperar hasta que los resultados se devuelvan y luego continúen el resto del proceso. También podemos decir que la salida de la función lambda es requerida por la función o el servicio en sí que invocó esta lambda.
  2. Invocaciones asincrónicas

    Aquí, no hay esperanza de que las funciones de Lambda proporcionen los resultados al invover. Esto se usa principalmente para notificaciones o para activar otros eventos independientes en AWS. El servicio que desea invocar la función Lambda solo envía el disparador y esa operación se pone en cola en la lambda y se ejecutará en su turno.

Diferentes formas de invocar lambda

Aquí, verá numerosas formas de invocar las funciones de Lambda. Saber que esto es muy útil para usted la próxima vez que diseñe su infraestructura AWS simple pero rentable.

Invocar directamente las funciones Lambda

En la mayoría de los casos, las funciones Lambda están diseñadas para activarse utilizando otros servicios, pero puede invocarlos directamente utilizando la consola de administración de AWS, AWS CLI y a través de la URL de la función.

Invocar a Lambda de la consola de gestión

Cuando crea cualquier función lambda en su consola AWS, puede activarla fácilmente utilizando la opción de ejecución de prueba en la consola. El Prueba El botón está disponible en la sección Código de la función Lambda.

Puede crear un evento personalizado y usar la consola con su patrón de evento personalizado.

De esta manera, la función lambda se puede activar desde la consola de AWS.

AWS CLI

AWS le brinda la capacidad de usar todos sus recursos utilizando la interfaz de línea de comandos de AWS. Cualquier función Lambda también se puede invocar con este CLI. Esto puede ser muy efectivo para probar cosas durante las etapas de desarrollo. Siguiendo el comando AWS CLI se puede usar como un gatillo para invocar la función Lambda.

ubuntu@ubuntu: ~ $ aws lambda invoke \
--nombre de la función \
--carga útil \
--formato de cli < base64 | raw-in-base64-out >

La función se activa con éxito y también puede observar esto en la salida.

URL de función

La URL de la función es en realidad un punto final HTTP que puede configurar para sus funciones Lambda. Esta URL se puede usar para activar las funciones Lambda y también puede compartir esta URL con otros usuarios incluso fuera de su cuenta AWS para invocar las funciones Lambda. Aunque debe tener cuidado con las URL de funciones, cualquier persona con este enlace puede activar su función Lambda innumerables veces, y todos los costos estarán en su cabeza.

Se puede configurar una URL de función mientras se crea, así como después de crear la función Lambda. Para esto, simplemente vaya a la configuración avanzada en la sección de configuración y verifique el Habilitar URL de función caja.

En caso de que no haya adjuntado una URL de función mientras crea la función Lambda, puede hacerlo más tarde. Para esto, debe ir a la pestaña de configuración, seleccionar la URL de la función y hacer clic en Crear URL de función.

De esta manera, la URL de la función se crea y se usa para invocar la función Lambda.

Invocar las funciones de Lambda utilizando los servicios de AWS

Muchos servicios de AWS se pueden configurar como un activador para invocar la función Lambda. Solo necesita configurar los servicios de AWS como un desencadenante para invocar la función Lambda. Aquí, revisamos todos estos servicios con una explicación sobre cómo usarlos como su lambda desencadenantes.

Puerta de enlace de la API

Este es un servicio AWS que se utiliza ampliamente para crear y administrar las API en su modelo de aplicación. Las API ofrecen una forma muy flexible de generar solicitudes o llamadas de un paquete de software a otro paquete que no podemos exponer directamente y solo queremos mantener detrás de escena.

Para agregar cualquier servicio como disparador a su función Lambda, simplemente vaya a la función Lambda y haga clic en Agregar disparador.

A continuación, puede seleccionar el servicio que desea adjuntar como disparador a su función Lambda. Para esta sección, seleccionamos la puerta de enlace API como disparador para la función Lambda.

A continuación, configure el servicio como desea que actúe en la estructura de su aplicación.

Hay dos tipos de API compatibles con la puerta de enlace de la API y se pueden utilizar para invocar una función Lambda.

API HTTP: Se utilizan para generar los puntos finales HTTP que se enrutan a sus funciones Lambda. Las API HTTP dan menos funcionalidad y son menos costosas de usar.

API REST: Si desea más funciones en su API, debe ir a una API REST. Estas API pueden invocar la función Lambda y usar los mismos métodos HTTP, proporcionando más flexibilidad e independencia.

Cubo s3

Hay muchos casos de uso en los que verá que los cubos S3 están actuando como un gatillo para invocar la función Lambda. Puede configurar un cubo S3 para activar la función Lambda para un evento S3 específico.

Por ejemplo, desea recopilar los metadatos de cualquier archivo cuando se cargue en su cubo. Para esto, desarrolla un código y lo implementa en la función Lambda. Para el gatillo Lambda, seleccione el cubo S3. Para el tipo de evento, seleccione poner objeto. Para que, cada vez que se agrega un nuevo archivo al cubo, la función Lambda se activa y los metadatos del objeto se recopilan y almacenan en la ubicación de destino cuando especifica.

Puede haber muchos otros escenarios en los que S3 se puede usar como un desencadenante para invocar la función Lambda.

Balancer de carga

Suponga que su aplicación está diseñada para ejecutarse en funciones Lambda, ya que la función Lambda es la solución más rentable para una aplicación simple basada en la nube. Ahora, para exponer su aplicación a los usuarios finales, es posible que desee adjuntar un equilibrador de carga frente a ella. Para esta sección, seleccione el equilibrador de carga que actúa como disparador para invocar la función Lambda. Recuerde que solo puede configurar el equilibrador de carga de la aplicación para esta tarea, ya que otros equilibradores de carga no son compatibles con las funciones Lambda.

Para agregar el equilibrador de carga de la aplicación a la función Lambda, primero debe crear un grupo de destino y se agrega la función Lambda a ese grupo de destino. Ahora, el grupo objetivo recién creado se puede agregar a los oyentes del equilibrador de carga de la aplicación.

Frente a la nube

Amazon CloudFront es en realidad un CDN (red de entrega de contenido) y se usa para almacenar en caché los datos de la aplicación en ubicaciones de borde que están mucho más cerca de los usuarios finales en comparación con los servidores de aplicaciones reales. Usando CloudFront, realmente puede mejorar el tiempo de respuesta para servir el contenido estático a los usuarios finales de todo el mundo.

Las funciones Lambda se pueden activar utilizando el servicio CloudFront. Para esto, debe implementar su función Lambda en ubicaciones de borde en todo el mundo conocida como Lambda@Edge.

Puede establecer el Trigger de CloudFront para enviar las solicitudes al Lambda@Egde a través de CloudFront para mejorar el tiempo de respuesta. Como el lambda@bord se implementa en todas las ubicaciones de borde en todo el mundo, los usuarios finales enfrentan un tiempo de respuesta mínimo al acceder a la ubicación de borde más cercana implementada Lambda.

Para configurar esto, simplemente vaya a Agregar disparador y elija el servicio CloudFront. Allí, verás el desplegar en lambda@bord opción.

Ahora, solo necesita completar los pasos de configuración y comenzar.

Logs de CloudWatch

Cada vez que piensa en el monitoreo en la nube de AWS, lo primero que viene a la mente es CloudWatch, ya que este es un servicio de monitoreo muy vasto que se puede configurar para diferentes servicios de una manera muy útil.

Los registros de CloudWatch, como el nombre define, es un servicio de registro que se puede utilizar para almacenar todo tipo de registros. Puede crear diferentes grupos de registro para diferentes servicios para mantener los registros separados. Estos registros se pueden utilizar para activar su función Lambda en función de los eventos que reciben, independientemente del servicio o procedimiento que produce estos eventos.

Puede configurar el disparador de la consola de funciones Lambda o directamente desde los registros de CloudWatch. Para hacer esto desde la consola de CloudWatch, simplemente vaya al servicio CloudWatch y abra los grupos de registro. Aquí, debe crear un filtro de suscripción Lambda.

A continuación, elija la función Lambda que desee y que esté listo para comenzar.

Ahora, cada vez que CloudWatch obtiene esa transmisión de registro, actúa como un disparador para invocar la función Lambda.

Eventbridge

Amazon Eventbridge (anteriormente conocido como eventos de CloudWatch) es un servicio AWS que le permite crear las reglas del evento para activar un servicio AWS específico en un evento específico que ocurre en una cuenta de AWS.

Hay una amplia variedad de reglas que puede establecer para los servicios de AWS (como la creación de instancias de EC2 o los eventos de la base de datos RDS), así como los servicios de terceros (como el evento GitHub Push). Estas reglas pueden estar más vinculadas con otros servicios, como las funciones de Lambda de tal manera que cada vez que se cumpla esta regla, invoca la función Lambda.

Si tiene una regla de eventBridge ya establecida, puede agregar fácilmente esta regla como un disparador a su función lambda. Seleccione EventBridge como activador y simplemente proporcione el nombre de la regla.

Aquí se agrega una regla existente como desencadenante, pero también podría crear una regla en este punto.

Dinamodb

Es posible que haya sabido que DynamodB es solo una base de datos NoSQL y aparece como un servicio completamente separado en AWS. Esta es una base de datos sin servidor totalmente configurada y puede comenzar directamente a crear tablas en ella. Estas tablas DynamodB se pueden configurar para actuar como desencadenantes para invocar las funciones Lambda.

Los datos del DynamodB se pueden cargar a Lambda como entrada en forma de lotes y se procesa utilizando el código que se implementa en Lambda.

Kinesis

Si desea recopilar y analizar los datos en tiempo real a una tasa alta, puede beneficiarse de AWS Kinesis. Suponga que desea procesar los datos recopilados por los flujos de datos de Kinesis utilizando las funciones Lambda. Simplemente necesita activar su función lambda cada vez que los datos son registrados por la kinesis.

Acaba de que haya terminado de configurar su flujo de datos de Kinesis para invocar la función Lambda.

SNS

Es simplemente un servicio de notificación que se usa comúnmente para enviar notificaciones de un servicio AWS al otro porque a veces no hay forma de configurar las notificaciones directamente de un servicio a otro. Las funciones Lambda se pueden activar utilizando este servicio.

Cree primero un tema de SNS, luego úselo para invocar su función Lambda.

Tienes que seleccionar el nombre de su tema SNS. No hay otras configuraciones ni configuraciones.

Conclusión

Amazon Lambda es realmente un avance en la arquitectura de la nube. El desarrollo y la implementación de aplicaciones nunca han sido tan fácil y sencillo antes de él. Le permite simplemente crear su código en cualquier marco común y cargar su código a Lambda y se ejecuta. Hay una larga lista de otros servicios que se pueden combinar con AWS Lambda y actuar como un desencadenante para invocar su función Lambda solo cuando se requiere. No hay un costo de ejecución continuo del servidor, pero se le cobrará dependiendo de la cantidad de desencadenantes y el tiempo de ejecución del código.