Construyendo la función Lambda

La función AWS Lambda ejecuta un código cuando se invoca. En este capítulo, se describen todos estos pasos involucrados en el ciclo de vida de la función AWS Lambda en detalle.

Pasos para crear una función Lambda

El ciclo de vida de la función Lambda incluye cuatro pasos necesarios:

  • Authoring
  • Deploying
  • Monitoring
  • Troubleshooting

Creación de código Lambda

El código de función de AWS Lambda se puede escribir en los siguientes idiomas:

  • NodeJS
  • Java,
  • Python
  • C#
  • Go.

Podemos escribir código para AWS Lambda usando la consola de AWS, AWS CLI, desde Eclipse IDE, desde Visual Studio IDE, marco sin servidor, etc.

La siguiente tabla muestra una lista de idiomas y las diferentes herramientas e IDE que se pueden usar para escribir la función Lambda:

Idioma IDE para la creación de código Lambda
NodeJS

Consola AWS Lambda

IDE de Visual Studio

Java Eclipse IDE
Pitón Consola AWS Lambda
C#

IDE de Visual Studio

.NET core

Vamos Consola AWS Lambda

Implementación de código Lambda

Una vez que decida el idioma en el que desea escribir la función Lambda, hay dos formas de implementar el código:

  • Escriba directamente el código en la consola de AWS
  • Comprima o jar los archivos con todos los archivos y dependencias

Sin embargo, recuerde que se debe otorgar el permiso adecuado al archivo zip.

Prueba de código Lambda

El código Lambda se puede probar para detectar eventos dentro de la consola de AWS Lambda. También es posible probar la función Lambda desde la cli de AWS y la cli sin servidor. La consola de AWS también tiene datos de eventos que se pueden usar como eventos de muestra mientras se prueba la función AWS Lambda.

Supervisión de la función Lambda

La supervisión de la función Lambda se puede realizar mediante AWS CloudWatch. Podemos agregar los mensajes de registro necesarios en los idiomas que elegimos y ver lo mismo en AWS CloudWatch.

Para comenzar a escribir la función Lambda, se debe seguir un patrón. Los siguientes son los principales conceptos básicos que se deben seguir para escribir una función Lambda:

Manipulador

Handler es un nombre de la función lambda de AWS desde donde comienza la ejecución. Aparece en la consola de AWS como se muestra a continuación:

Tenga en cuenta que aquí hemos cambiado el controlador predeterminado a otro nombre y actualizado el mismo en el controlador:

Tenga en cuenta que la forma en que se llama a un controlador difiere de los idiomas seleccionados como tiempo de ejecución.

Parámetros pasados ​​al controlador

Si observa la función del controlador, los parámetros pasados ​​son event, context y call back function como se muestra a continuación -

Event El parámetro tiene todos los detalles del disparador utilizado.

ContextBásicamente, el parámetro se encarga de los detalles del tiempo de ejecución para que se ejecute la función Lambda. Podemos interactuar con la función Lambda usando elcontextparam. Tiene detalles como el tiempo restante antes de que AWS Lambda finalice una función, es decir, el tiempo de espera especificado al crear la función Lambda, el nombre de la función Lambda, el nombre del grupo de observación en la nube, los detalles del arn, etc.

Ejemplo

Entendamos los detalles obtenidos del objeto de contexto de AWS Lambda con la ayuda de un ejemplo:

exports.lambdahandler = (event, context, callback) => {
   // TODO implement
   console.log("context object details");
   console.log(JSON.stringify(context));
   callback(null, 'Lambda test');
};

Cuando ejecuta la función Lambda que se muestra arriba, puede ver el siguiente resultado:

Salida

los context los detalles se dan de la siguiente manera:

{
   "callbackWaitsForEmptyEventLoop":true,"logGroupName":"/aws/lambda/myfirstlambdafunction",
   "logStreamName":"2018/05/20/[$LATEST]04f17ee4ff7048d5bb1fedffaa807c71","functionName":
   "myfirstlambdafunction","memoryLimitInMB":"128","functionVersion":"$LATEST","invokeid":
   "c931e21c-5bf3-11e8-acfe-47fdbb39eee9","awsRequestId":"c931e21c-5bf3-11e8-acfe-47fdbb39eee9",
   "invokedFunctionArn":"arn:aws:lambda:us-east-1:625297745038:function:myfirstlambdafunction"
}

Observe que tiene detalles como functionName, memorylimit, requestId, etc.

Inicio sesión

Los registros agregados dentro de la función Lambda se muestran en AWS CloudWatch cuando se ejecuta la función AWS. La sintaxis de los registros variará del idioma seleccionado. Por ejemplo ennodejs, es console.log.

Esta es la salida que puede ver en AWSCloudWatch:

Manejo de errores

La función AWS Lambda proporciona una función de devolución de llamada que se utiliza para notificar a la función Lambda que ha ocurrido un error o un éxito. Tenga en cuenta que aquí hemos utilizado nodejs como tiempo de ejecución. El manejo de errores variará según el idioma seleccionado.

Observe el ejemplo dado aquí para una mejor comprensión:

exports.lambdahandler = (event, context, callback) => {
   // TODO implement
   var error = new Error("There is error in code");
   callback(error);
};

Salida

Cuando prueba el código Lambda, puede encontrar el resultado como se muestra a continuación:

Los detalles del registro de la siguiente manera: