Creación e implementación mediante la consola de AWS
Podemos crear la función Lambda y probar la misma en la consola de AWS. Este capítulo analiza esto en detalle. Para este propósito, deberá seguir los pasos que se dan aquí y observar las capturas de pantalla respectivas:
Paso 1
Inicie sesión en la consola de AWS https://aws.amazon.com/console/. Ahora, será redirigido a la pantalla donde se muestran los servicios de AWS.
Paso 2
Ahora, haga clic en Lambdaservicio como se destaca arriba. Esto redirigirá para crear la función como se muestra a continuación:
Paso 3
Ahora, haga clic en Create functione ingrese los detalles de la función. Entonces puede ver una pantalla como se muestra a continuación:
Paso 4
Puede escribir su código eligiendo el idioma de su elección. El código debe escribirse en el editor si la opción seleccionada es editar código en línea. Las otras opciones disponibles son las siguientes:
Paso 5
Una vez hecho esto, debe guardar los cambios para los que se muestra el botón en la esquina superior derecha, como se muestra a continuación:
Paso 6
Ahora, haga clic en Testbotón. Esto proporciona todos los detalles de la ejecución de la función Lambda como se muestra a continuación:
Paso 7
El código para index.js es como sigue -
exports.handler = (event, context, callback) => {
// TODO implement
callback(null, 'Lambda test');
};
Esto llamará al Callback functiony el resultado puede ser un error o un éxito. Si tiene éxito, verá unLambda testmensaje; si hay error, pasará nulo.
Paso 8
los Role Los detalles de la función Lambda son parte de la configuración y se muestran como se muestra a continuación:
Paso 9
Ahora, puede actualizar el rol si es necesario y guardar la función Lambda. Luego, los detalles de la memoria y el tiempo de espera para la función lambda se muestran como se muestra a continuación:
Paso 10
Ahora, necesitamos agregar un disparador a la función Lambda para que se ejecute cuando ocurra el evento. Los detalles del disparador se muestran al inicio de la pantalla de la función AWS Lambda como se muestra a continuación:
A partir de aquí, puede seleccionar el activador que desea que se active su función Lambda. Cuando selecciona el disparador, se deben agregar los detalles de configuración del disparador.
Por ejemplo, para el disparador en S3, los detalles de configuración que se agregarán son los siguientes:
Paso 11
Ahora, seleccione el cubo en el que desea activar el disparador. El tipo de evento tiene los siguientes detalles:
Paso 12
Para el disparador, también puede mencionar los archivos de tipo de prefijo o el patrón de archivo, el Lambda debe ser disparador. Los detalles son los que se muestran:
Paso 13
Ahora, complete los detalles requeridos para el disparador y haga clic Add Botón. Guarde la función Lambda para que se agregue el disparador. Al guardar la función, se implementan los detalles y, a partir de ahora, cada vez que se agregan archivos al depósito S3, Lambda se activará.
Observe la siguiente captura de pantalla que muestra el disparador S3 agregado a AWS Lambda:
Paso 14
Ahora, usemos el evento de muestra S3 para probar la función Lambda. El código para el mismo se muestra aquí:
Evento de muestra de envío de Amazon S3
{
"Records": [{
"eventVersion": "2.0",
"eventTime": "1970-01-01T00:00:00.000Z",
"requestParameters": {
"ExampleIPAddress": "127.0.0.1"
},
"s3": {
"configurationId": "testConfigRule",
"object": {
"eTag": "0123456789abcdef0123456789abcdef",
"sequencer": "0A1B2C3D4E5F678901",
"key": "HappyFace.jpg",
"size": 1024
},
"bucket": {
"arn": bucketarn,
"name": "Examplebucket",
"ownerIdentity": {
"principalId": "Example"
}
},
"s3SchemaVersion": "1.0"
},
"responseElements": {
"x-amz-id-2": "Example123/5678abcdefghijklambdaisawesome/mnopqrstuvwxyzABCDEFGH",
"x-amz-request-id": "Example123456789"
},
"awsRegion": "us-east-1",
"eventName": "ObjectCreated:Put",
"userIdentity": {
"principalId": "Example"
},
"eventSource": "aws:s3"
}]
}
Tendrá que usar el siguiente comando para obtener los detalles del archivo cargado desde el evento put de S3:
event.Records[0].s3.object.key //will display the name of the file
Tendrá que usar el siguiente comando para obtener el nombre del depósito:
event.Records[0].s3.bucket.name //will give the name of the bucket.
Tendrá que usar el siguiente comando para obtener el nombre del evento:
event.Records[0].eventName // will display the event name
Paso 15
Ahora, actualice el código AWS Lambda para imprimir los detalles de S3 como se muestra a continuación:
exports.lambdahandler = (event, context, callback) => {
callback(null, "Bucket name: "+event.Records[0].s3.bucket.name+"
File name:"+event.Records[0].s3.object.key );
};
Paso 16
Guarde los cambios. Hacer clicTest e ingrese el evento de muestra S3 -
Paso 17
Ahora haga clic Test y puede ver la salida como se muestra -
Paso 18
Para probar el activador en S3 mediante el servicio S3 AWS, cargue un archivo en el depósito S3: test bucket trigger. Actualice el rol utilizado con Lambda para tomar la política S3 y SES (para enviar correo) para los permisos. Esto actualizará el código de AWS Lambda para enviar correo y ver cómo funciona el disparador:
El código de AWS Lambda actualizado es como se muestra:
var aws = require('aws-sdk');
var ses = new aws.SES({
region: 'us-east-1'
});
exports.lambdahandler = function(event, context, callback) {
var eParams = {
Destination: {
ToAddresses: ["[email protected]"]
},
Message: {
Body: {
Text: {
Data: "Bucket name: "+event.Records[0].s3.bucket.name+" File name:"+event.Records[0].s3.object.key
}
},
Subject: {
Data: "S3 and AWS Lambda"
}
},
Example: "[email protected]"
};
console.log('===SENDING EMAIL===');
var email = ses.sendEmail(eParams, function(err, data) {
if (err) console.log(err);
else {
console.log("===EMAIL SENT===");
console.log("EMAIL CODE END");
console.log('EMAIL: ', email);
context.succeed(event);
callback(null, "email is send");
}
});
};
La captura de pantalla correspondiente es la que se muestra aquí:
Paso 19
Ahora, cargue el archivo y verifique la identificación de correo proporcionada en el código AWS Lambda: