Monitoraggio e risoluzione dei problemi utilizzando Cloudwatch
Le funzioni create in AWS Lambda sono monitorate da Amazon CloudWatch. Aiuta a registrare tutte le richieste fatte alla funzione Lambda quando viene attivata.
Considera che il codice seguente viene caricato in AWS Lambda con il nome della funzione come lambda and cloudwatch.
exports.handler = (event, context, callback) => {
// TODO implement
console.log("Lambda monitoring using amazon cloudwatch");
callback(null, 'Hello from Lambda');
};
Quando la funzione viene testata o attivata, dovresti vedere una voce in Cloudwatch. A tale scopo, vai ai servizi AWS e fai clic su CloudWatch.
Seleziona i registri dal lato sinistro.
Quando fai clic su Logs, ha l'estensione Log Groupsdella funzione AWS Lambda creata nel tuo account. Seleziona una qualsiasi funzione AWS Lambda e controlla i dettagli. Qui ci riferiamo alla funzione Lambda con il nome:lambdaandcloudwatch. I log aggiunti alla funzione Lambda vengono visualizzati qui come mostrato di seguito -
Ora, aggiungiamo il trigger S3 alla funzione Lambda e vediamo i dettagli dei log in CloudWatch come mostrato di seguito -
Cerchiamo di aggiornare il codice AWS Lambda per visualizzare il file caricato e il nome del bucket come mostrato nel codice riportato di seguito:
exports.handler = (event, context, callback) => {
// TODO implement
console.log("Lambda monitoring using amazon cloudwatch");
const bucket = event.Records[0].s3.bucket.name;
const filename = event.Records[0].s3.object.key;
const message = `File is uploaded in - ${bucket} -> ${filename}`;
console.log(message);
callback(null, 'Hello from Lambda');
};
Ora aggiungi il file s3storetestlambdaEventbucket come mostrato -
Quando il file viene caricato, le funzioni AWS Lambda verranno attivate e i messaggi di log della console dal codice Lambda vengono visualizzati in CloudWatch come mostrato di seguito:
In caso di errore, CloudWatch fornisce i dettagli dell'errore come mostrato di seguito:
Tieni presente che abbiamo fatto erroneamente riferimento al nome del bucket nel codice AWS Lambda come mostrato:
exports.handler = (event, context, callback) => {
// TODO implement
console.log("Lambda monitoring using amazon cloudwatch");
const bucket = event.Records[0].bucket.name;
const filename = event.Records[0].s3.object.key;
const message = `File is uploaded in - ${bucket} -> ${filename}`;
console.log(message);
callback(null, 'Hello from Lambda');
};
Il riferimento al nome del bucket dall'evento è sbagliato. Pertanto, dovremmo vedere un errore visualizzato in CloudWatch come mostrato di seguito -
Metriche di CloudWatch
I dettagli dell'esecuzione della funzione Lambda possono essere visualizzati nelle metriche. ClicMetrics visualizzato sul lato sinistro.
I dettagli del grafico per la funzione lambda lambdaandcloudwatch sono come mostrato di seguito -
Fornisce dettagli come la durata di esecuzione della funzione Lambda, il numero di volte in cui viene richiamata e gli errori della funzione Lambda.