Erstellen von Lambda-Funktionen mit Java
Sie können Java-Code in AWS Lambda ausführen. Lambda bietet Laufzeiten für Java, die Ihren Code ausführen, um Ereignisse zu verarbeiten. 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-Laufzeiten.
Name | ID | Betriebssystem | Datum der Veraltung | Blockfunktion erstellen | Blockfunktion aktualisieren |
---|---|---|---|---|---|
Java 21 |
|
Amazon Linux 2023 |
Nicht geplant |
Nicht geplant |
Nicht geplant |
Java 17 |
|
Amazon Linux 2 |
Nicht geplant |
Nicht geplant |
Nicht geplant |
Java 11 |
|
Amazon Linux 2 |
Nicht geplant |
Nicht geplant |
Nicht geplant |
Java 8 |
|
Amazon Linux 2 |
Nicht geplant |
Nicht geplant |
Nicht geplant |
Lambda stellt die folgenden Bibliotheken für Java-Funktionen bereit:
-
com.amazonaws:aws-lambda-java-core
(erforderlich) – definiert Handler-Methodenschnittstellen und das Kontextobjekt, das die Laufzeit an den Handler übergibt. Wenn Sie eigene Eingabetypen definieren, benötigen Sie nur diese eine Bibliothek. -
com.amazonaws:aws-lambda-java-events
– Eingabetypen für Ereignisse von Services, die Lambda-Funktionen aufrufen. -
com.amazonaws:aws-lambda-java-log4j2
– Eine Appender-Bibliothek für Apache Log4j 2, mit der Sie die Anfrage-ID für den aktuellen Aufruf zu Ihren Funktionsprotokollen hinzufügen können. -
AWS SDK for Java 2.0
– Die offizielle AWS SDK für die Programmiersprache Java.
Wichtig
Verwenden Sie keine privaten Komponenten der JDK API, wie private Felder, Methoden oder Klassen. Nicht öffentliche API-Komponenten können sich bei jedem Update ändern oder entfernt werden, was dazu führen kann, dass Ihre Anwendung nicht mehr funktioniert.
So erstellen Sie eine Java-Funktion
-
Öffnen Sie die Lambda-Konsole
. -
Wählen Sie Funktion erstellen aus.
-
Konfigurieren Sie die folgenden Einstellungen:
-
Funktionsname: Geben Sie einen Namen für die Funktion ein.
-
Laufzeit: Wählen Sie Java 21 aus.
-
-
Wählen Sie Funktion erstellen aus.
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-Datei-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 über die Umgebungsvariablen.
Ihre Lambda-Funktion verfügt über eine CloudWatch-Logs-Protokollgruppe. Die Funktionslaufzeit sendet Details zu jedem Aufruf an CloudWatch Logs. Es leitet alle Protokolle weiter, die Ihre Funktion während des Aufrufs ausgibt. Wenn Ihre Funktion einen Fehler zurückgibt, formatiert Lambda den Fehler und gibt ihn an den Aufrufer zurück.
Themen
- Definieren des Lambda-Funktions-Handlers in Java
- Bereitstellen von Java-Lambda-Funktionen mit ZIP- oder JAR-Dateiarchiven
- Bereitstellen von Java-Lambda-Funktionen mit Container-Images
- Arbeiten mit Ebenen für Java Lambda-Funktionen
- Passen Sie die Serialisierung für Lambda-Java-Funktionen an
- Passen Sie das Startverhalten der Java-Laufzeit für Lambda-Funktionen an
- Verwenden des Lambda-Kontextobjekts zum Abrufen von Java-Funktionsinformationen
- Java-Lambda-Funktionen protokollieren und überwachen
- Instrumentieren von Java-Code in AWS Lambda
- Java-Beispielanwendungen für AWS Lambda