Überwachung und Fehlerbehebung mit Cloudwatch
In AWS Lambda erstellte Funktionen werden von Amazon CloudWatch überwacht. Es hilft bei der Protokollierung aller Anforderungen an die Lambda-Funktion, wenn diese ausgelöst wird.
Beachten Sie, dass der folgende Code in AWS Lambda mit dem Funktionsnamen as hochgeladen wird lambda and cloudwatch.
exports.handler = (event, context, callback) => {
// TODO implement
console.log("Lambda monitoring using amazon cloudwatch");
callback(null, 'Hello from Lambda');
};
Wenn die Funktion getestet oder ausgelöst wird, sollte ein Eintrag in Cloudwatch angezeigt werden. Wechseln Sie zu diesem Zweck zu AWS-Services und klicken Sie auf CloudWatch.
Wählen Sie Protokolle von der linken Seite aus.
Wenn Sie klicken Logshat es die Log Groupsder in Ihrem Konto erstellten AWS Lambda-Funktion. Wählen Sie eine beliebige AWS Lambda-Funktion aus und überprüfen Sie die Details. Hier beziehen wir uns auf die Lambda-Funktion mit Namen:lambdaandcloudwatch. Die zur Lambda-Funktion hinzugefügten Protokolle werden hier wie folgt angezeigt:
Lassen Sie uns nun der Lambda-Funktion einen S3-Trigger hinzufügen und die Protokolldetails in CloudWatch wie unten gezeigt anzeigen.
Lassen Sie uns den AWS Lambda-Code aktualisieren, um die hochgeladene Datei und den Bucket-Namen anzuzeigen, wie im folgenden Code gezeigt -
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');
};
Fügen Sie nun eine Datei hinzu s3storetestlambdaEventbucket wie gezeigt -
Wenn die Datei hochgeladen wird, werden AWS Lambda-Funktionen ausgelöst und die Konsolenprotokollmeldungen vom Lambda-Code werden in CloudWatch angezeigt (siehe unten).
Wenn ein Fehler auftritt, gibt CloudWatch die Fehlerdetails wie unten gezeigt an.
Beachten Sie, dass wir den Bucket-Namen im AWS Lambda-Code wie gezeigt falsch angegeben haben -
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');
};
Die Bucket-Namensreferenz des Ereignisses ist falsch. Daher sollte in CloudWatch ein Fehler angezeigt werden, wie unten gezeigt -
CloudWatch-Metriken
Die Details der Ausführung der Lambda-Funktion sind in den Metriken zu sehen. KlickenMetrics wird auf der linken Seite angezeigt.
Die Grafikdetails für die Lambda-Funktion lambdaandcloudwatch sind wie unten gezeigt -
Es enthält Details wie die Dauer, für die die Lambda-Funktion ausgeführt wird, die Häufigkeit des Aufrufs und die Fehler der Lambda-Funktion.