Costruzione della funzione Lambda

La funzione AWS Lambda esegue un codice quando viene richiamata. Questo capitolo descrive in dettaglio tutti questi passaggi coinvolti nel ciclo di vita della funzione AWS Lambda.

Passaggi per la creazione di una funzione Lambda

Il ciclo di vita della funzione Lambda include quattro passaggi necessari:

  • Authoring
  • Deploying
  • Monitoring
  • Troubleshooting

Creazione di codice Lambda

Il codice della funzione AWS Lambda può essere scritto nelle seguenti lingue:

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

Possiamo scrivere codice per AWS Lambda utilizzando la console AWS, AWS CLI, da Eclipse IDE, da Visual Studio IDE, framework serverless ecc.

La tabella seguente mostra un elenco di lingue e i diversi strumenti e IDE che possono essere utilizzati per scrivere la funzione Lambda:

linguaggio IDE per la creazione di codice Lambda
NodeJS

Console AWS Lambda

IDE di Visual Studio

Giava Eclipse IDE
Pitone Console AWS Lambda
C #

IDE di Visual Studio

.NET core

Partire Console AWS Lambda

Distribuzione del codice Lambda

Dopo aver deciso la lingua in cui scrivere la funzione Lambda, ci sono due modi per distribuire il codice:

  • Scrivi direttamente il codice nella console AWS
  • Comprimi o comprimi i file con tutti i file e le dipendenze

Tuttavia, ricorda che è necessario dare il permesso appropriato per essere dato al file zip.

Test del codice Lambda

Il codice Lambda può essere testato per gli eventi all'interno della console AWS Lambda. È anche possibile testare la funzione Lambda dal cli AWS e dal cli serverless. La console AWS dispone anche di dati sugli eventi che possono essere utilizzati come eventi di esempio durante il test della funzione AWS Lambda.

Funzione di monitoraggio Lambda

Il monitoraggio della funzione Lambda può essere eseguito utilizzando AWS CloudWatch. Possiamo aggiungere i messaggi di log necessari nelle lingue che scegliamo e vedere lo stesso in AWS CloudWatch.

Per iniziare a scrivere la funzione Lambda, è necessario seguire uno schema. Di seguito sono riportati i principali concetti fondamentali da seguire per scrivere una funzione Lambda:

Gestore

Handler è un nome della funzione lambda AWS da cui inizia l'esecuzione. Viene visualizzato nella console AWS come mostrato di seguito:

Si noti che qui abbiamo cambiato il gestore predefinito con un altro nome e aggiornato lo stesso nel gestore -

Si noti che il modo in cui viene chiamato un gestore differisce dalle lingue selezionate come runtime.

I parametri sono passati al gestore

Se osservi la funzione handler, i parametri passati sono event, context e call back function come mostrato di seguito -

Event il parametro contiene tutti i dettagli per il trigger utilizzato.

Contextil parametro fondamentalmente si prende cura dei dettagli di runtime per l'esecuzione della funzione Lambda. Possiamo interagire con la funzione Lambda utilizzando ilcontextparam. Ha i dettagli come il tempo rimanente prima che AWS Lambda termini una funzione, ovvero il timeout specificato durante la creazione della funzione Lambda, il nome della funzione Lambda, il nome del gruppo di cloudwatch, i dettagli arn ecc.

Esempio

Cerchiamo di capire i dettagli ottenuti dall'oggetto contesto AWS Lambda con l'aiuto di un esempio:

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

Quando esegui la funzione Lambda mostrata sopra, puoi vedere il seguente output:

Produzione

Il context i dettagli sono forniti come segue:

{
   "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"
}

Osserva che ha dettagli come functionName, memorylimit, requestId ecc.

Registrazione

I log aggiunti all'interno della funzione Lambda vengono visualizzati in AWS CloudWatch quando viene eseguita la funzione AWS. La sintassi dei registri varierà dalla lingua selezionata. Ad esempio innodejs, è console.log.

Questo è l'output che puoi vedere in AWSCloudWatch -

Gestione degli errori

La funzione AWS Lambda fornisce una funzione di callback che viene utilizzata per notificare alla funzione Lambda che si è verificato un errore o una riuscita. Nota che qui abbiamo usato nodejs come runtime. La gestione degli errori sarà diversa a seconda della lingua selezionata.

Osservare l'esempio fornito qui per una migliore comprensione:

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

Produzione

Quando provi il codice Lambda, puoi trovare l'output come mostrato di seguito:

I dettagli del registro come segue: