Uso de la función Lambda con aplicaciones de usuario personalizadas

Podemos utilizar la función lambda de AWS para procesar el uso de eventos generados por la aplicación del usuario de las siguientes dos formas:

  • Uso de la consola de AWS
  • Uso de AWS CLI

Uso de la consola de AWS

Desde la consola de AWS, trabajaremos con eventos y AWS Lambda. Para ello, vaya a la consola de AWS y cree una función lambda.

A continuación, agreguemos el código para AWS Lambda:

exports.handler = (event, context, callback) => {
   // TODO implement
   console.log("Hello => "+ event.name);
   console.log("Address =>"+ event.addr);
   callback(null, 'Hello '+event.name +" and address is "+ event.addr);
};

Tenga en cuenta que en el código anterior, estamos imprimiendo el nombre y la dirección mediante evento.

Los detalles del evento se proporcionarán utilizando el evento de prueba creado de la siguiente manera:

Ahora, guarde el evento y pruébelo.

La salida de registro correspondiente se muestra aquí:

Uso de AWS CLI

Podemos invocar la función anterior utilizando AWS CLI de la siguiente manera:

aws lambda invoke --function-name "lambdauserevent" --log-type Tail --
payload file://C:\clioutput\input.txt C:\clioutput\outputfile.txt

Los detalles del evento se dan a la carga útil y la salida se almacena en C:\clioutput\outputfile.txt. como sigue -

input.txt

{"name":"Roy Singh", "addr":"Mumbai"}

Al invocar Lambda mediante AWS CLI, puede ver que el resultado es el siguiente:

De manera similar, en caso de que desee probar AWS Lambda para cualquier otro servicio de AWS, puede hacerlo mediante el evento de prueba en la consola de AWS y la AWS CLI. A continuación se muestra un evento de muestra para el servicio SNS:

{
   "Records": [{
      "EventVersion": "1.0",
      "EventSubscriptionArn": "arnid",
      "EventSource": "aws:sns",
      "Sns": {
         "SignatureVersion": "1",
         "Timestamp": "1970-01-01T00:00:00.000Z",
         "Signature": "EXAMPLE",
         "SigningCertUrl": "EXAMPLE",
         "MessageId": "95df01b4-ee98-5cb9-9903-4c221d41eb5e",
         "Message": "Hello from SNS!",
         "MessageAttributes": {
            "Test": {
               "Type": "String",
               "Value": "TestString"
            },
            "TestBinary": {
               "Type": "Binary",
               "Value": "TestBinary"
            }
         },
         "Type": "Notification",
         "UnsubscribeUrl": "EXAMPLE",
         "TopicArn": "topicarn",
         "Subject": "TestInvoke"
      }
   }]
}

Agreguemos el evento de muestra que se muestra arriba y probémoslo como se muestra:

En AWS Lambda, el código imprimirá el mensaje SNS como se muestra en el ejemplo que se muestra a continuación:

exports.handler = (event, context, callback) => {
   // TODO implement
   console.log(event.Records[0].Sns.Message);
   callback(null, event.Records[0].Sns.Message);};

Invoquemos lo mismo usando AWS CLI. Guardemos el evento en un archivo y usémoslo para la carga útil usando el comando que se muestra:

aws lambda invoke --function-name "lambdauserevent" --log-type Tail --
payload file://C:\clioutput\sns.txt C:\clioutput\snsoutput.txt