Utilizzo della funzione Lambda con applicazioni utente personalizzate

Possiamo utilizzare la funzione AWS lambda per elaborare utilizzando eventi generati dall'applicazione utente nei due modi seguenti:

  • Utilizzo della console AWS
  • Utilizzo di AWS CLI

Utilizzo della console AWS

Dalla console AWS, lavoreremo con eventi e AWS Lambda. A tale scopo, vai alla console AWS e crea una funzione lambda.

Successivamente, aggiungiamo il codice per 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);
};

Nota che nel codice sopra, stiamo stampando il nome e l'indirizzo usando event.

I dettagli dell'evento verranno forniti utilizzando l'evento di prova creato come segue:

Ora salva l'evento e provalo.

L'output del registro corrispondente è come mostrato qui -

Utilizzo di AWS CLI

Possiamo richiamare la funzione sopra utilizzando AWS CLI come segue:

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

I dettagli dell'evento vengono forniti al payload e l'output viene archiviato in C:\clioutput\outputfile.txt. come segue -

input.txt

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

Quando si richiama Lambda utilizzando AWS CLI, è possibile vedere che l'output è il seguente:

Allo stesso modo, nel caso in cui desideri testare AWS Lambda per qualsiasi altro servizio AWS, puoi farlo utilizzando l'evento di test nella console AWS e nell'AWS CLI. Di seguito è mostrato un evento di esempio per il servizio 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"
      }
   }]
}

Aggiungiamo l'evento di esempio mostrato sopra e provalo come mostrato -

In AWS Lambda, il codice stamperà il messaggio SNS come mostrato nell'esempio riportato di seguito:

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

Richiamiamo lo stesso utilizzando AWS CLI. Salviamo l'evento in un file e usiamo quello per il payload usando il comando mostrato -

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