HTTP-Cloud Run Functions-Funktion mit Python (1. Generation) erstellen und bereitstellen
Dieser Leitfaden erläutert den Prozess zum Schreiben einer Cloud Run Functions-Funktion mithilfe der Python-Laufzeit. 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.
Das Beispiel zeigt, wie Sie eine einfache HTTP-Funktion erstellen.
Hinweis
- Melden Sie sich in Ihrem Google Cloud Konto an. Wenn Sie noch kein Konto haben, erstellen Sie eines, um zu sehen, wie sich unsere Produkte in realen Szenarien schlagen. Google CloudNeukunden 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 neues Projekt oder wählen Sie ein vorhandenes Projekt Google Cloud aus.
Rollen, die zum Auswählen oder Erstellen eines Projekts erforderlich sind
- 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 in:
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 für Ihr Google Cloud Projekt in die Abrechnung aktiviert ist.
Aktivieren Sie die Cloud Functions und Cloud Build APIs:
Rollen, die zum Aktivieren von APIs erforderlich sind
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 neues Projekt oder wählen Sie ein vorhandenes Projekt Google Cloud aus.
Rollen, die zum Auswählen oder Erstellen eines Projekts erforderlich sind
- 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 in:
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 für Ihr Google Cloud Projekt in die Abrechnung aktiviert ist.
Aktivieren Sie die Cloud Functions und Cloud Build APIs:
Rollen, die zum Aktivieren von APIs erforderlich sind
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
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 im Verzeichnis
helloworldeine Dateimain.pymit folgendem Inhalt:Diese Beispielfunktion verwendet einen in der HTTP-Anfrage angegebenen Namen und gibt eine Begrüßung bzw. „Hello World!“, wenn kein Name angegeben wird, zurück.
Abhängigkeiten angeben
Abhängigkeiten in Python werden mit pip verwaltet und in einer Metadatendatei mit dem Namen requirements.txt ausgedrückt.
Diese Datei muss sich im selben Verzeichnis wie die Datei main.py befinden, die den Funktionscode enthält.
Sie müssen zur Ausführung dieses Beispiels kein requirements.txt erstellen, aber angenommen, Sie möchten Ihre eigenen Abhängigkeiten hinzufügen. Dazu gehen Sie folgendermaßen vor:
Erstellen Sie im Verzeichnis
helloworldeine Dateirequirements.txt.Fügen Sie die Abhängigkeit der Funktion Ihrer
requirements.txt-Datei hinzu. Beispiel:# An example requirements file, add your dependencies below sampleproject==2.0.0
Funktion implementieren
Stellen Sie die Funktion mit einem HTTP-Trigger mit diesem Befehl im Verzeichnis helloworld bereit:
gcloud functions deploy hello_http --no-gen2 --runtime python314 --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 hello_httpDies sollte so aussehen:
https://GCP_REGION-PROJECT_ID.cloudfunctions.net/hello_http
Rufen Sie diese URL in Ihrem Browser auf: Jetzt sollten Sie die Meldung "Hello World!" sehen.
Geben Sie einen Namen in die HTTP-Anfrage ein, z. B. mithilfe der folgenden URL:
https://GCP_REGION-PROJECT_ID.cloudfunctions.net/hello_http?name=NAME
Jetzt sollten Sie die Meldung "Hello
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 hello_http
Die Ausgabe sollte in etwa so aussehen:
LEVEL NAME EXECUTION_ID TIME_UTC LOG D hello_http pdb5ys2t022n 2019-09-18 23:29:09.791 Function execution started D hello_http pdb5ys2t022n 2019-09-18 23:29:09.798 Function execution took 7 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.