SERVERLESS LAMBDA FaaS

Los lambdas son un servicio cloud (FaaS) que ejecutan lógica programada en algún lenguaje de programación. Inician y terminan, es decir, no son un servicio en constante ejecución desplegado en un servidor i.e. son serverless. El proveedor cloud únicamente factura por el tiempo y recursos usados en la ejecución, por lo que son útiles para ahorrar en costos.

AWS Lambda

En el caso del servicio de FaaS que provee AWS, los lambdas se pueden ejecutar por desencadenadores diferentes:

  • evento de kinesis: se activan para procesar un evento que de kinesis que es inyectado en el stream.

  • API Gateway: Se activan con una llamada REST a un endpoint de API

  • SQS: Se activan al recibir un mensaje disponible en SQS

  • S3: Se activan por eventos de S3 como creación de un objeto, borrado de un objeto, mover un objeto etc.

Casos de uso

Los lambdas son útiles pero no siempre son la mejor opción, ya que tienen la limitante de no poder ejecutarse por más de 15 minutos. Esto quiere decir que el caso de uso para utilizarlos es un proceso corto de procesamiento, no están pensadas para procesos largos de procesamiento.

Estándares SPIN

En SPIN utilizamos el lenguaje estándar NodeJs con TypeScript para nuestras funciones lambdas, pero se pueden usar también otros como Python etc.

Si necesita más información sobre cómo crear su lambda en TypeScript, aquí hay un enlace a los estándares. TypeScript Style Guide and Coding Conventions v1.0.0-beta

Si un lambda necesita un valor sensible como apikeys, certificados etc, deberá leerlos del parameter store de AWS (SSM - Simple System Manager).