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.
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 die gcloud CLI.
- Aktualisieren und installieren Sie
gcloud
-Komponenten: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.
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
helloworld
eine 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 python312 --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.url
oder suchen Sie es mit diesem Befehl:gcloud functions describe hello_http
Dies 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-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.