Mostrando entradas con la etiqueta AWS Lambda; Big Data. Mostrar todas las entradas
Mostrando entradas con la etiqueta AWS Lambda; Big Data. Mostrar todas las entradas

domingo, 12 de noviembre de 2017

AWS Lambda

La computación dentro de una solución Big Data esta soportada por medio del servicio AWS Lambda (entre otros), que permite ejecutar código sin aprovisionar ni administrar servidores. Se trata de uno de los servicios más interesantes de la plataforma donde únicamente se paga por el tiempo de ejecución de las funciones, por cada 100 ms que el código se ejecute y no por el número de veces que se activa el código. Cuando AWS Lambda ejecuta una función Lambda, se encarga de aprovisionar y administrar los recursos necesarios para ejecutar la función. Al crear una función Lambda, se especifica información de configuración, como la cantidad de memoria y el tiempo de ejecución máximo que se desea permitir. 

Cuando se invoca una función Lambda, AWS Lambda lanza un contenedor (es decir, un entorno de ejecución) basado en los ajustes de configuración que se han  proporcionado. Se necesita tiempo para configurar el contenedor y hacer el bootstrapping necesario, lo que añade latencia cada vez que se invoca la función Lambda. Esta latencia se observa cuando se invoca una función Lambda por primera vez o después de que se ha actualizado, AWS Lambda intenta reutilizar el contenedor para invocaciones posteriores de la función. Después de ejecutar una función Lambda, AWS Lambda mantendrá el contenedor durante algún tiempo en previsión de otra invocación de la función Lambda. 

            En la siguiente imagen mostramos cómo funcionan las funciones Lambda.




            Podemos escribir las funciones Lambda en 4 lenguajes principalmente:

  • Node.js
  • Java
  • C#
  • Phyton


El modelo de programación nos aporta un conjunto de características que debemos tener en cuenta:
  • Handler. Es la función AWS Lambda para iniciar la ejecución de nuestra función Lambda.  Cuando se invoca una función Lambda, AWS Lambda comienza a ejecutar su código llamando a la función del manejador. AWS Lambda pasa todos los datos de eventos a este controlador como el primer parámetro. El manejador debe procesar los datos de eventos entrantes y puede invocar cualquier otra función / método dentro del código aportado.
  • Contexto (interacción en tiempo de ejecución). AWS Lambda también aporta  un objeto de contexto a la función Handler como segundo parámetro. Por medio de este objeto de contexto, el código puede interactuar con AWS Lambda. Por ejemplo, puede controlar el tiempo de ejecución restante antes de que AWS Lambda termine la ejecución de la función Lambda. Para lenguajes como Node.js, existe una plataforma asíncrona que utiliza devoluciones de llamada. AWS Lambda proporciona métodos adicionales sobre este objeto de contexto. 
  • Registro. La función Lambda puede contener declaraciones de registro. AWS Lambda escribe estos registros en los registros de CloudWatch. 
  • Excepciones. La función Lambda puede requerir comunicar el resultado de la ejecución a AWS Lambda. Dependiendo del lenguaje en el que haya creado el código de función Lambda existen diferentes maneras de finalizar una solicitud con éxito o de notificar a AWS Lambda un error durante la ejecución. Si se invoca la función de forma síncrona, AWS Lambda reenvía el resultado al cliente.

A continuación mostramos el código de una handler básico desarrollado en Python:


Machine Learning soluciones a los problemas

  El aprendizaje automático, o Machine Learning (ML), es una rama de la inteligencia artificial que se centra en la creación de sistemas que...