Aufbau der Lambda-Funktion
Die AWS Lambda-Funktion führt beim Aufrufen einen Code aus. In diesem Kapitel werden alle diese Schritte im Lebenszyklus der AWS Lambda-Funktion ausführlich beschrieben.
Schritte zum Erstellen einer Lambda-Funktion
Der Lebenszyklus der Lambda-Funktion umfasst vier notwendige Schritte:
- Authoring
- Deploying
- Monitoring
- Troubleshooting
Verfassen des Lambda-Codes
Der AWS Lambda-Funktionscode kann in folgenden Sprachen geschrieben werden:
- NodeJS
- Java,
- Python
- C#
- Go.
Wir können Code für AWS Lambda mithilfe der AWS-Konsole, der AWS CLI, der Eclipse-IDE, der Visual Studio-IDE, des serverlosen Frameworks usw. schreiben.
Die folgende Tabelle zeigt eine Liste der Sprachen sowie der verschiedenen Tools und IDE, mit denen die Lambda-Funktion geschrieben werden kann.
Sprache | IDE zum Erstellen von Lambda-Code |
---|---|
NodeJS | AWS Lambda-Konsole Visual Studio IDE |
Java | Eclipse IDE |
Python | AWS Lambda-Konsole |
C # | Visual Studio IDE .NET-Kern |
Gehen | AWS Lambda-Konsole |
Bereitstellen von Lambda-Code
Sobald Sie sich für die Sprache entschieden haben, in der Sie die Lambda-Funktion schreiben möchten, gibt es zwei Möglichkeiten, den Code bereitzustellen:
- Schreiben Sie den Code direkt in die AWS-Konsole
- Zip oder jar die Dateien mit allen Dateien und Abhängigkeiten
Denken Sie jedoch daran, dass die richtige Berechtigung für die Zip-Datei erteilt werden muss.
Testen des Lambda-Codes
Lambda-Code kann auf Ereignisse in der AWS Lambda-Konsole getestet werden. Es ist auch möglich, die Lambda-Funktion über die AWS-CLI und die Serverless-CLI zu testen. Die AWS-Konsole verfügt auch über Ereignisdaten, die beim Testen der AWS Lambda-Funktion als Beispielereignisse verwendet werden können.
Überwachung der Lambda-Funktion
Die Überwachung der Lambda-Funktion kann mit der AWS CloudWatch erfolgen. Wir können die erforderlichen Protokollnachrichten in den von uns ausgewählten Sprachen hinzufügen und in AWS CloudWatch anzeigen.
Um mit dem Schreiben der Lambda-Funktion zu beginnen, muss ein Muster befolgt werden. Das Folgende sind die wichtigsten Kernkonzepte für das Schreiben einer Lambda-Funktion:
Handler
Handler ist ein Name der AWS-Lambda-Funktion, von der aus die Ausführung beginnt. Es wird in der AWS-Konsole wie unten gezeigt angezeigt -
Beachten Sie, dass wir hier den Standardhandler in einen anderen Namen geändert und diesen im Handler aktualisiert haben -
Beachten Sie, dass sich die Art und Weise, wie ein Handler aufgerufen wird, von den als Laufzeit ausgewählten Sprachen unterscheidet.
Parameter an Handler übergeben
Wenn Sie die Handlerfunktion beobachten, sind die übergebenen Parameter event, context und call back function wie unten gezeigt -
Event Der Parameter enthält alle Details für den verwendeten Trigger.
ContextDer Parameter kümmert sich im Wesentlichen um die Laufzeitdetails, damit die Lambda-Funktion ausgeführt werden kann. Wir können mit der Lambda-Funktion über die interagierencontextparam. Es enthält Details wie die verbleibende Zeit, bevor AWS Lambda eine Funktion beendet, dh das beim Erstellen der Lambda-Funktion angegebene Zeitlimit, den Namen der Lambda-Funktion, den Namen der Cloudwatch-Gruppe, Arn-Details usw.
Beispiel
Lassen Sie uns die Details des AWS Lambda-Kontextobjekts anhand eines Beispiels verstehen -
exports.lambdahandler = (event, context, callback) => {
// TODO implement
console.log("context object details");
console.log(JSON.stringify(context));
callback(null, 'Lambda test');
};
Wenn Sie die oben gezeigte Lambda-Funktion ausführen, sehen Sie die folgende Ausgabe:
Ausgabe
Das context Details sind wie folgt angegeben -
{
"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"
}
Beachten Sie, dass es Details wie Funktionsname, Speicherlimit, Anforderungs-ID usw. enthält.
Protokollierung
Die in der Lambda-Funktion hinzugefügten Protokolle werden in AWS CloudWatch angezeigt, wenn die AWS-Funktion ausgeführt wird. Die Protokollsyntax hängt von der ausgewählten Sprache ab. Zum Beispiel innodejsist es console.log.
Dies ist die Ausgabe, die Sie in AWSCloudWatch sehen können -
Fehlerbehandlung
Die AWS Lambda-Funktion bietet eine Rückruffunktion, mit der die Lambda-Funktion über einen Fehler oder Erfolg informiert wird. Beachten Sie, dass wir hier nodejs als Laufzeit verwendet haben. Die Fehlerbehandlung unterscheidet sich je nach ausgewählter Sprache.
Beachten Sie das hier gegebene Beispiel zum besseren Verständnis -
exports.lambdahandler = (event, context, callback) => {
// TODO implement
var error = new Error("There is error in code");
callback(error);
};
Ausgabe
Wenn Sie den Lambda-Code testen, finden Sie die Ausgabe wie unten gezeigt -
Die Protokolldetails lauten wie folgt: