Ü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.