HTTP-Cloud Run Functions-Funktion mit Java erstellen und bereitstellen
In diesem Leitfaden wird der Schreibvorgang für eine Cloud Run Functions-Funktion mit der Java-Laufzeit beschrieben. Es gibt zwei Arten von Cloud Run-Funktionen:
- Eine HTTP-Funktion, die Sie über Standard-HTTP-Anfragen aufrufen.
- Eine ereignisgesteuerte Funktion, die durch Ereignisse in Ihrer Cloud-Infrastruktur ausgelöst wird, z. B. Nachrichten in einem Pub/Sub-Thema oder Änderungen in einem Cloud Storage-Bucket.
In diesem Dokument wird gezeigt, wie Sie eine einfache HTTP-Funktion mit Maven oder Gradle erstellen.
Weitere Informationen finden Sie unter HTTP-Funktionen schreiben und Ereignisgesteuerte Funktionen schreiben.
Vorbereitung
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Functions, Cloud Build, Artifact Registry, Cloud Run, and Cloud Logging APIs.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Functions, Cloud Build, Artifact Registry, Cloud Run, and Cloud Logging APIs.
- Installieren und initialisieren Sie das Google Cloud SDK.
- Aktualisieren und installieren Sie
gcloud-Komponenten mit dem folgenden Befehl.gcloud components update
-
Bereiten Sie die Entwicklungsumgebung vor.
Funktion erstellen
In diesem Abschnitt wird beschrieben, wie Sie eine Funktion erstellen.
Maven
Erstellen Sie in Ihrem lokalen System ein Verzeichnis für den Funktionscode:
Linux oder Mac OS X:
mkdir ~/helloworld cd ~/helloworldWindows:
mkdir %HOMEPATH%\helloworld cd %HOMEPATH%\helloworldErstellen Sie die Projektstruktur, die das Quellverzeichnis und die Quelldatei enthält.
mkdir -p ~/helloworld/src/main/java/functions touch ~/helloworld/src/main/java/functions/HelloWorld.javaFügen Sie der
HelloWorld.java-Datei diesen Inhalt hinzu:Diese Beispielfunktion gibt die Begrüßung „Hello World!“ aus.
Gradle
Erstellen Sie in Ihrem lokalen System ein Verzeichnis für den Funktionscode:
Linux oder Mac OS X:
mkdir ~/helloworld-gradle cd ~/helloworld-gradleWindows:
mkdir %HOMEPATH%\helloworld-gradle cd %HOMEPATH%\helloworld-gradleErstellen Sie die Projektstruktur, die das Quellverzeichnis und die Quelldatei enthält.
mkdir -p src/main/java/functions touch src/main/java/functions/HelloWorld.javaFügen Sie der
HelloWorld.java-Datei diesen Inhalt hinzu:Diese Beispielfunktion gibt die Begrüßung „Hello World!“ aus.
Abhängigkeiten angeben
Im nächsten Schritt werden die Abhängigkeiten eingerichtet:
Maven
Wechseln Sie in das Verzeichnis helloworld, das Sie oben erstellt haben, und erstellen Sie eine pom.xml-Datei:
cd ~/helloworld
touch pom.xml
Zum Verwalten von Abhängigkeiten mithilfe von Maven geben Sie die Abhängigkeiten im Abschnitt <dependencies> der Datei pom.xml Ihres Projekts an. Kopieren Sie für diese Übung die folgenden Inhalte in die Datei pom.xml.
Unter helloworld finden Sie ein vollständiges Beispiel, das auf Maven basiert.
Gradle
Wechseln Sie in das Verzeichnis helloworld-gradle, das Sie oben erstellt haben, und erstellen Sie eine build.gradle-Datei:
cd ~/helloworld-gradle
touch build.gradle
Zum Verwalten von Abhängigkeiten mithilfe von Gradle geben Sie die Abhängigkeiten in der Datei build.gradle Ihres Projekts an. Kopieren Sie für diese Übung die folgenden Inhalte in die Datei build.gradle. Beachten Sie, dass die Datei build.gradle eine benutzerdefinierte Aufgabe enthält, damit Sie Funktionen lokal ausführen können.
Unter helloworld finden Sie ein vollständiges Beispiel, das auf Gradle basiert.
Funktion lokal erstellen und testen
Bevor Sie die Funktion bereitstellen, können Sie sie lokal erstellen und testen:
Maven
Führen Sie den folgenden Befehl aus, um zu prüfen, ob Ihre Funktion erstellt wird:
mvn compileEine weitere Option besteht darin, den Befehl
mvn packagezu verwenden, um Ihren Java-Code zu kompilieren, Tests auszuführen und den Code in einer JAR-Datei im Zielverzeichnis zu verpacken. Weitere Informationen zum Maven-Build-LebenszyklusStarten Sie die Funktion mit dem folgenden Befehl:
mvn function:runTesten Sie Ihre Funktion. Rufen Sie dazu
http://localhost:8080in einem Browser auf oder führen Siecurl localhost:8080in einem anderen Fenster aus.Weitere Informationen finden Sie unter Anfragen an lokale Funktionen senden.
Gradle
Führen Sie den folgenden Befehl aus, um zu prüfen, ob Ihre Funktion erstellt wird:
gradle buildStarten Sie die Funktion mit dem folgenden Befehl:
gradle runFunction -Prun.functionTarget=functions.HelloWorldTesten Sie Ihre Funktion. Rufen Sie dazu
http://localhost:8080in einem Browser auf oder führen Siecurl localhost:8080in einem anderen Fenster aus.Weitere Informationen finden Sie unter Anfragen an lokale Funktionen senden.
Funktion bereitstellen
Führen Sie den folgenden Befehl im Verzeichnis helloworld aus, wenn Sie maven verwenden, oder im Verzeichnis helloworld-gradle für Gradle, um die Funktion bereitzustellen:
gcloud functions deploy java-http-function \
--gen2 \
--entry-point=functions.HelloWorld \
--runtime=java21 \
--region=REGION \
--source=. \
--trigger-http \
--allow-unauthenticated
Ersetzen Sie REGION durch den Namen der Google Cloud-Region, in der Sie die Funktion bereitstellen möchten (z. B. us-west1).
Mit dem optionalen Flag --allow-unauthenticated können Sie die Funktion ohne Authentifizierung aufrufen.
java-http-function ist der registrierte Name, mit dem die Funktion in der Google Cloud Console identifiziert wird. --entry-point gibt den vollständig qualifizierten Klassennamen (FQN) der Funktion an.
Bereitgestellte Funktion testen
Beachten Sie nach dem Bereitstellen der Funktion das Attribut
uriin der Ausgabe des Befehlsgcloud functions deployoder rufen Sie es mit dem folgenden Befehl ab:gcloud functions describe java-http-function \ --region=REGIONErsetzen Sie REGION durch den Namen der Google Cloud-Region, in der Sie die Funktion bereitgestellt haben (z. B.
us-west1).Rufen Sie diese URL in Ihrem Browser auf: Die Funktion gibt die Nachricht „Hello World!“ zurück.
Logs der Funktion ansehen
Logs mit dem Befehlszeilentool ansehen
Sie können die Logs Ihrer Funktion über die Cloud Logging-UI oder die Google Cloud CLI prüfen.
Wenn Sie mit der gcloud CLI Logs für Ihre Funktion aufrufen möchten, verwenden Sie den Befehl logs read:
gcloud functions logs read \
--gen2 \
--limit=10 \
--region=REGION \
java-http-function
Ersetzen Sie REGION durch den Namen der Google Cloud-Region, in der Sie die Funktion bereitgestellt haben (z. B. us-west1).
Die Ausgabe sollte in etwa so aussehen:
LEVEL: I
NAME: my-first-function
TIME_UTC: 2023-05-29 23:09:57.708
LOG:
LEVEL: I
NAME: my-first-function
TIME_UTC: 2023-05-29 23:05:53.257
LOG: Default STARTUP TCP probe succeeded after 1 attempt for container "my--first--function-1" on port 8080.
LEVEL:
NAME: my-first-function
TIME_UTC: 2023-05-29 23:05:53.248
LOG: 2023-05-29 23:05:53.248:INFO:oejs.Server:main: Started @892ms
Logs mit dem Logging-Dashboard ansehen
Um die Logs für Ihre Funktion mit dem Logging-Dashboard aufzurufen, öffnen Sie die Übersichtsseite zu Cloud Run Functions. Klicken Sie in der Liste auf den Namen Ihrer Funktion und dann auf den Tab Logs.