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.
Hinweis
- Melden Sie sich in Ihrem Google Cloud Konto an. Wenn Sie noch kein Google Cloud-Nutzer sind, erstellen Sie ein Konto, um zu sehen, wie sich unsere Produkte in realen Szenarien schlagen. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
-
Installieren Sie die Google Cloud CLI.
-
Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.
-
Führen Sie den folgenden Befehl aus, um die gcloud CLI zu initialisieren:
gcloud init -
Erstellen Sie ein Google Cloud Projekt oder wählen Sie eines aus.
Erforderliche Rollen zum Auswählen oder Erstellen eines Projekts
- Projekt auswählen: Für die Auswahl eines Projekts ist keine bestimmte IAM-Rolle erforderlich. Sie können ein beliebiges Projekt auswählen, für das Ihnen eine Rolle zugewiesen wurde.
-
Projekt erstellen: Zum Erstellen eines Projekts benötigen Sie die Rolle „Projektersteller“
(
roles/resourcemanager.projectCreator), die dieresourcemanager.projects.createBerechtigung enthält. Rollen zuweisen.
-
Erstellen Sie ein Google Cloud Projekt:
gcloud projects create PROJECT_ID
Ersetzen Sie
PROJECT_IDdurch einen Namen für das Google Cloud Projekt, das Sie erstellen. -
Wählen Sie das von Ihnen erstellte Google Cloud Projekt aus:
gcloud config set project PROJECT_ID
Ersetzen Sie
PROJECT_IDdurch Ihren Google Cloud Projektnamen.
-
Prüfen Sie, ob die Abrechnung für Ihr Google Cloud Projekt aktiviert ist.
Aktivieren Sie die Cloud Functions und Cloud Build APIs:
Erforderliche Rollen zum Aktivieren von APIs
Zum Aktivieren von APIs benötigen Sie die IAM-Rolle „Service Usage-Administrator“ (
roles/serviceusage.serviceUsageAdmin), die die Berechtigungserviceusage.services.enableenthält. Rollen zuweisen.gcloud services enable cloudfunctions
cloudbuild.googleapis.com -
Installieren Sie die Google Cloud CLI.
-
Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.
-
Führen Sie den folgenden Befehl aus, um die gcloud CLI zu initialisieren:
gcloud init -
Erstellen Sie ein Google Cloud Projekt oder wählen Sie eines aus.
Erforderliche Rollen zum Auswählen oder Erstellen eines Projekts
- Projekt auswählen: Für die Auswahl eines Projekts ist keine bestimmte IAM-Rolle erforderlich. Sie können ein beliebiges Projekt auswählen, für das Ihnen eine Rolle zugewiesen wurde.
-
Projekt erstellen: Zum Erstellen eines Projekts benötigen Sie die Rolle „Projektersteller“
(
roles/resourcemanager.projectCreator), die dieresourcemanager.projects.createBerechtigung enthält. Rollen zuweisen.
-
Erstellen Sie ein Google Cloud Projekt:
gcloud projects create PROJECT_ID
Ersetzen Sie
PROJECT_IDdurch einen Namen für das Google Cloud Projekt, das Sie erstellen. -
Wählen Sie das von Ihnen erstellte Google Cloud Projekt aus:
gcloud config set project PROJECT_ID
Ersetzen Sie
PROJECT_IDdurch Ihren Google Cloud Projektnamen.
-
Prüfen Sie, ob die Abrechnung für Ihr Google Cloud Projekt aktiviert ist.
Aktivieren Sie die Cloud Functions und Cloud Build APIs:
Erforderliche Rollen zum Aktivieren von APIs
Zum Aktivieren von APIs benötigen Sie die IAM-Rolle „Service Usage-Administrator“ (
roles/serviceusage.serviceUsageAdmin), die die Berechtigungserviceusage.services.enableenthält. Rollen zuweisen.gcloud services enable cloudfunctions
cloudbuild.googleapis.com - 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 src/main/java/functions touch src/main/java/functions/HelloWorld.javaFügen Sie der Datei
HelloWorld.javadiesen 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 Datei
HelloWorld.javadiesen 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
my-first-function der registrierte Name, mit dem die Funktion
in der Google Cloud Console identifiziert wird, und --entry-point der
vollständig qualifizierte 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
my-first-function der registrierte Name, mit dem die Funktion
in der Google Cloud Console identifiziert wird, und --entry-point der
vollständig qualifizierte Klassennamen (FQN) der Funktion.So testen Sie die bereitgestellte Funktion
Notieren Sie sich nach der Bereitstellung der Funktion das Attribut
httpsTrigger.urloder suchen Sie es mit diesem Befehl: Es sollte so aussehen:gcloud functions describe my-first-function
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.