HTTP-Cloud Run Functions-Funktion mit Python 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.
Weitere Informationen finden Sie unter HTTP-Funktionen schreiben und Ereignisgesteuerte Funktionen schreiben.
Hinweise
- 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 die gcloud CLI.
- Aktualisieren und installieren Sie
gcloud
-Komponenten mit dem folgenden Befehl.gcloud components update
-
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 ~/helloworld
Windows
mkdir %HOMEPATH%\helloworld cd %HOMEPATH%\helloworld
Erstellen Sie eine
main.py
-Datei im Verzeichnishelloworld
mit 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.
Erstellen Sie eine
requirements.txt
-Datei im Verzeichnishelloworld
mit folgendem Inhalt:# An example requirements file. If your function has other dependencies, # add them below functions-framework==3.*
Funktion lokal erstellen und testen
So erstellen und testen Sie Ihre Funktion vor der Bereitstellung lokal:
Führen Sie das Paketinstallationsprogramm für Python,
pip
, aus, um die Abhängigkeiten Ihres Pakets zu installieren:pip3 install -r requirements.txt PATH=$PATH:~/.local/bin
So führen Sie Ihre Funktion lokal mit dem Functions Framework aus:
functions-framework-python --target hello_http
Testen Sie die Funktion. Rufen Sie dazu
http://localhost:8080
in einem Browser auf oder führen Siecurl localhost:8080
in einem anderen Fenster aus.Weitere Informationen finden Sie unter Anfragen an lokale Funktionen senden.
Funktion bereitstellen
Führen Sie den Befehl im Verzeichnis helloworld
aus, um die Funktion bereitzustellen:
gcloud functions deploy python-http-function \
--gen2 \
--runtime=python312 \
--region=REGION \
--source=. \
--entry-point=hello_http \
--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.
Bereitgestellte Funktion testen
Beachten Sie nach dem Bereitstellen der Funktion das Attribut
uri
in der Ausgabe des Befehlsgcloud functions deploy
oder rufen Sie es mit dem folgenden Befehl ab:gcloud functions describe python-http-function \ --region=REGION
Ersetzen 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 \
python-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: hello-http
TIME_UTC: 2023-06-01 19:33:42.991
LOG: Default STARTUP TCP probe succeeded after 1 attempt for container "hello__http-1" on port 8080.
LEVEL: I
NAME: hello-http
TIME_UTC: 2023-06-01 19:33:41.933
LOG:
LEVEL: I
NAME: hello-http
TIME_UTC: 2023-06-01 19:33:26.475
LOG: Default STARTUP TCP probe succeeded after 1 attempt for container "hello__http-1" on port 8080.
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.