Erstellen von Lambda-Funktionen mit Java - AWS Lambda

Erstellen von Lambda-Funktionen mit Java

Sie können Java-Code in AWS Lambda ausführen. Lambda stellt Ausführungen für Java bereit, die Ihren Code zur Verarbeitung von Ereignissen ausführen. Ihr Code wird in einer Amazon Linux-Umgebung ausgeführt, die AWS-Anmeldeinformationen aus einer von Ihnen verwalteten AWS Identity and Access Management (IAM)-Rolle enthält.

Lambda unterstützt die folgenden Java-Laufzeitumgebungen.

Java-Laufzeiten
Name ID JDK Betriebssystem

Java 11

java11

amazon-corretto-11

Amazon Linux 2

Java 8

java8

java-1.8.0-openjdk

Amazon Linux

Lambda-Funktionen verwenden eine Ausführungsrolle, um die Berechtigung zum Schreiben von Protokollen in Amazon CloudWatch Logs zu erhalten und auf andere Services und Ressourcen zuzugreifen. Wenn Sie nicht bereits über eine Ausführungsrolle für die Funktionserstellung verfügen, erstellen Sie eine.

So erstellen Sie eine Ausführungsrolle

  1. Öffnen Sie die Seite Roles (Rollen) in der IAM -Konsole.

  2. Wählen Sie Create role aus.

  3. Erstellen Sie eine Rolle mit den folgenden Eigenschaften.

    • Trusted entity (Vertrauenswürdige Entität)Lambda.

    • Permissions (Berechtigungen)AWSLambdaBasicExecutionRole.

    • Role name (Name der Rolle)lambda-role.

    Die Richtlinie AWSLambdaBasicExecutionRole verfügt über die Berechtigungen, die die Funktion zum Schreiben von Protokollen in CloudWatch Logs benötigt.

Sie können später Berechtigungen zur Rolle hinzufügen oder gegen eine andere Rolle austauschen, die für eine einzelne Funktion spezifisch ist.

So erstellen Sie eine Java-Funktion

  1. Öffnen Sie die Lambda-Konsole.

  2. Wählen Sie Create function (Funktion erstellen).

  3. Konfigurieren Sie die folgenden Einstellungen:

    • Namemy-function.

    • LaufzeitJava 11.

    • Role (Rolle)Choose an existing role (Wählen einer vorhandenen Rolle).

    • Existing role (Vorhandene Rolle)lambda-role.

  4. Wählen Sie Create function (Funktion erstellen).

  5. Um ein Testereignis zu konfigurieren, wählen Sie Test.

  6. Geben Sie für Event name (Ereignisname) test ein.

  7. Wählen Sie Create (Erstellen) aus.

  8. Klicken Sie auf Test, um die Funktion auszuführen.

Die Konsole erstellt eine Lambda-Funktion mit einer Handler-Klasse namens Hello. Da es sich bei Java um eine kompilierte Sprache handelt, können Sie den Quellcode in der Lambda-Konsole nicht anzeigen oder bearbeiten, aber Sie können seine Konfiguration ändern, ihn aufrufen und Auslöser konfigurieren.

Anmerkung

Um mit der Anwendungsentwicklung in Ihrer Umgebung vor Ort zu beginnen, stellen Sie eine der Beispielanwendungen bereit, die im GitHub-Repository dieses Handbuchs verfügbar sind.

Die Hello-Klasse hat eine Funktion mit dem Namen handleRequest, die ein Ereignisobjekt und ein Kontext-Objekt übernimmt. Dies ist die Handler-Funktion, die bei einem Aufruf der Funktion von Lambda aufgerufen wird. Die Java-Funktionslaufzeit ruft Aufrufereignisse von Lambda ab und leitet sie an den Handler weiter. In der Konfiguration der Funktion lautet der Wert für den Handler example.Hello::handleRequest.

Um den Funktionscode zu aktualisieren, erstellen Sie ein Bereitstellungspaket, d. h. ein ZIP-Archiv handelt, das Ihren Funktionscode enthält. Mit fortschreitender Funktionserstellung sollten Sie Ihren Funktionscode in der Versionskontrolle speichern, Bibliotheken hinzufügen und Bereitstellungen automatisieren. Beginnen Sie mit der Erstellung eines Bereitstellungspakets und der Aktualisierung Ihres Codes in der Befehlszeile.

Die Funktionslaufzeit übergibt neben dem Aufrufereignis ein Context-Objekt an den Handler. Das Context-Objekt enthält zusätzliche Informationen zum Aufruf, zur Funktion und zur Ausführungsumgebung. Weitere Informationen erhalten Sie in den Umgebungsvariablen.

Ihre Lambda-Funktion verfügt über eine CloudWatch Logs-Protokollgruppe. Die Laufzeit der Funktion sendet Details zu jedem Aufruf an CloudWatch Logs. Sie leitet alle von Ihrer Funktion ausgegebenen Protokolle währen des Aufrufs weiter. Wenn Ihre Funktion einen Fehler zurückgibt, formatiert Lambda den Fehler und gibt ihn an den Aufrufer zurück.