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: