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: