HTTP-Cloud Run Functions-Funktion mit Go (1. Generation) erstellen und bereitstellen
Dieser Leitfaden erläutert Ihnen den Prozess zum Schreiben einer Cloud Run Functions-Funktion mithilfe der Go-Laufzeit. Es gibt zwei Arten von Cloud Run Functions-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.
Das Beispiel zeigt, wie Sie eine einfache HTTP-Funktion 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 bewähren. 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 oder wählen Sie ein Google Cloud Projekt 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. Informationen zum Zuweisen von Rollen.
-
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 Google Cloud Projekt aus, das Sie erstellt haben:
gcloud config set project PROJECT_ID
Ersetzen Sie
PROJECT_IDdurch Ihren Google Cloud Projektnamen.
-
Prüfen Sie, ob für Ihr Google Cloud Projekt die Abrechnung 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. Informationen zum Zuweisen von Rollen.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 oder wählen Sie ein Google Cloud Projekt 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. Informationen zum Zuweisen von Rollen.
-
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 Google Cloud Projekt aus, das Sie erstellt haben:
gcloud config set project PROJECT_ID
Ersetzen Sie
PROJECT_IDdurch Ihren Google Cloud Projektnamen.
-
Prüfen Sie, ob für Ihr Google Cloud Projekt die Abrechnung 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. Informationen zum Zuweisen von Rollen.gcloud services enable cloudfunctions
cloudbuild.googleapis.com - Bereiten Sie die Entwicklungsumgebung vor.
Funktion erstellen
Erstellen Sie in Ihrem lokalen System ein Verzeichnis für den Funktionscode:
Linux oder MacOS X
mkdir ~/helloworld cd ~/helloworldWindows
mkdir %HOMEPATH%\helloworld cd %HOMEPATH%\helloworldErstellen Sie eine Datei namens
hello_http.goim Verzeichnishelloworldmit folgendem Inhalt:Diese Beispielfunktion verwendet einen in der HTTP-Anfrage angegebenen Namen und gibt eine Begrüßung oder, wenn kein Name angegeben wird, "Hello World!" zurück.
Abhängigkeiten angeben
Diese Beispielfunktion verwendet nur Go-Standardbibliothekspakete, sodass Sie über den Import der Pakete hinaus keine Abhängigkeiten deklarieren müssen.
Für Funktionen, die Abhängigkeiten außerhalb der Standardbibliothek benötigen, müssen Sie die Abhängigkeiten entweder über eine go.mod-Datei oder ein vendor-Verzeichnis bereitstellen. Weitere Informationen finden Sie unter Abhängigkeiten in Go angeben.
Funktion implementieren
Stellen Sie die Funktion mit einem HTTP-Trigger mit diesem Befehl im Verzeichnis helloworld bereit. Geben Sie je nach verwendeter Version entweder go113 oder go111 als Wert für das Flag --runtime an:
gcloud functions deploy HelloHTTP --no-gen2 --runtime go121 --trigger-http --allow-unauthenticated
Mit dem Flag --allow-unauthenticated können Sie die Funktion ohne Authentifizierung aufrufen.
Wenn Sie eine Authentifizierung anfordern möchten, lassen Sie das Flag weg.
Funktion testen
Notieren Sie sich nach der Bereitstellung der Funktion das Attribut von
httpsTrigger.urloder suchen Sie es mit diesem Befehl:gcloud functions describe HelloHTTPDies sollte so aussehen:
https://GCP_REGION-PROJECT_ID.cloudfunctions.net/HelloHTTP
Rufen Sie diese URL in Ihrem Browser auf oder verwenden Sie cURL, indem Sie folgenden Befehl ausführen:
curl https://GCP_REGION-PROJECT_ID.cloudfunctions.net/HelloHTTP
Jetzt sollten Sie die Nachricht "Hello World!" sehen. Übergeben Sie mit folgendem Befehl einen Namen in der HTTP-Anfrage:
curl -X POST https://GCP_REGION-PROJECT_ID.cloudfunctions.net/HelloHTTP -H "Content-Type:application/json" -d '{"name":"NAME"}'Jetzt sollten Sie die Nachricht "Hallo
NAME!" sehen.
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 HelloHTTP
Die Ausgabe sollte in etwa so aussehen:
LEVEL NAME EXECUTION_ID TIME_UTC LOG D HelloHTTP buv9ej2k1a7r 2019-09-20 13:23:18.910 Function execution started D HelloHTTP buv9ej2k1a7r 2019-09-20 13:23:18.913 Function execution took 4 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.