HTTP-Cloud Run Functions-Funktion mit Java (1. Generation) 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 durch ein Ereignis ausgelöste Funktion, mit der Sie Ereignisse aus Ihrer Cloud-Infrastruktur verarbeiten können, 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.
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 and Cloud Build 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 and Cloud Build APIs.
- Installieren und initialisieren Sie das Google Cloud SDK.
- Aktualisieren und installieren Sie
gcloud
-Komponenten: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 ~/helloworld
Windows:
mkdir %HOMEPATH%\helloworld cd %HOMEPATH%\helloworld
Erstellen Sie die Projektstruktur, die das Quellverzeichnis und die Quelldatei enthält.
mkdir -p src/main/java/functions touch src/main/java/functions/HelloWorld.java
Fü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-gradle
Windows:
mkdir %HOMEPATH%\helloworld-gradle cd %HOMEPATH%\helloworld-gradle
Erstellen Sie die Projektstruktur, die das Quellverzeichnis und die Quelldatei enthält.
mkdir -p src/main/java/functions touch src/main/java/functions/HelloWorld.java
Fü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-gradle finden Sie ein vollständiges Beispiel, das auf Gradle basiert.
Build 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 compile
Eine weitere Option besteht darin, den Befehl mvn package
zu 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-Lebenszyklus
Testen Sie mit diesem Befehl die Funktion:
mvn function:run
Gradle
Führen Sie den folgenden Befehl aus, um zu prüfen, ob Ihre Funktion erstellt wird:
gradle build
Testen Sie mit diesem Befehl die Funktion:
gradle runFunction -Prun.functionTarget=functions.HelloWorld
Wenn der Test erfolgreich abgeschlossen ist, wird die URL angezeigt, die Sie in Ihrem Webbrowser aufrufen können, um die Funktion in Aktion zu sehen: http://localhost:8080/
. Die Meldung Hello World!
sollte angezeigt werden.
Alternativ können Sie Anfragen mit curl
von einem anderen Terminalfenster aus an diese Funktion senden:
curl localhost:8080
# Output: Hello World!
Funktion implementieren
Maven
Stellen Sie die Funktion mit einem HTTP-Trigger mit diesem Befehl im Verzeichnis helloworld
bereit:
gcloud functions deploy my-first-function --no-gen2 --entry-point functions.HelloWorld --runtime java17 --trigger-http --memory 512MB --allow-unauthenticated
Dabei ist my-first-function
der registrierte Name, mit dem die Funktion in der Google Cloud Console identifiziert wird, und --entry-point
der vollständig qualifizierter Klassennamen (FQN) der Funktion.
Gradle
Stellen Sie die Funktion mit einem HTTP-Trigger mit diesem Befehl im Verzeichnis helloworld-gradle
bereit:
gcloud functions deploy my-first-function --no-gen2 --entry-point functions.HelloWorld --runtime java17 --trigger-http --memory 512MB --allow-unauthenticated
Dabei ist my-first-function
der registrierte Name, mit dem die Funktion in der Google Cloud Console identifiziert wird, und --entry-point
der vollständig qualifizierter Klassennamen (FQN) der Funktion.
So testen Sie die bereitgestellte Funktion
Notieren Sie sich nach der Bereitstellung der Funktion das Attribut von
httpsTrigger.url
oder suchen Sie es mit diesem Befehl:gcloud functions describe my-first-function
Dies sollte so aussehen:
https://GCP_REGION-PROJECT_ID.cloudfunctions.net/my-first-function
Rufen Sie diese URL in Ihrem Browser auf: Die Meldung
Hello World!
sollte angezeigt werden.
Logs ansehen
Logs für Cloud Run Functions-Funktionen können über die Google Cloud CLI und in der Cloud Logging-UI aufgerufen werden.
Befehlszeilentool verwenden
Wenn Sie mit der gcloud CLI Logs für Ihre Funktion aufrufen möchten, verwenden Sie den Befehl logs read
, gefolgt vom Namen der Funktion:
gcloud functions logs read my-first-function
Die Ausgabe sollte in etwa so aussehen:
LEVEL NAME EXECUTION_ID TIME_UTC LOG D my-first-function k2bqgroszo4u 2020-07-24 18:18:01.791 Function execution started D my-first-function k2bqgroszo4u 2020-07-24 18:18:01.958 Function execution took 168 ms, finished with status code: 200 ...
Logging-Dashboard verwenden
Sie können Logs für Cloud Run Functions-Funktionen auch über die Google Cloud Console aufrufen.