HTTP Cloud Functions-Funktion mit PHP erstellen und bereitstellen
Dieser Leitfaden erläutert den Prozess zum Schreiben einer Cloud Function-Funktion mithilfe der PHP-Laufzeit. Es gibt zwei Arten von Cloud Functions:
- 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 und 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 und 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_http cd ~/helloworld_http
Windows
mkdir %HOMEPATH%\helloworld_http cd %HOMEPATH%\helloworld_http
Erstellen Sie eine
index.php
-Datei im Verzeichnishelloworld_http
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. Weitere Informationen zur Struktur und zu den erforderlichen Elementen in einer PHP-HTTP-Funktion finden Sie unter HTTP-Funktionen schreiben.
Abhängigkeiten angeben
PHP verwendet Composer zum Verwalten von Abhängigkeiten. Wenn Sie Cloud Shell verwenden, ist Composer bereits vorinstalliert. Andernfalls können Sie es mit den folgenden Befehlen installieren:
Führen Sie das Installationsskript für die
PHP
-Befehlszeile auf der Composer-Downloadseite aus, um Composer in den Entwicklungscomputer herunterzuladen.Verschieben Sie die Datei
composer.phar
in Ihr Arbeitsverzeichnis/usr/local/bin
.sudo mv composer.phar /usr/local/bin/composer
Geben Sie die Abhängigkeiten der Funktion an:
Fügen Sie dem Verzeichnis
helloworld_http
eine Dateicomposer.json
mit folgendem Inhalt hinzu:
Die Zeile
FUNCTION_TARGET
gibt den Einstiegspunkt der Funktion an.- Führen Sie den folgenden Befehl im Verzeichnis
helloworld_http
aus:
composer require google/cloud-functions-framework
Dadurch wird Functions Framework zu
composer.json
hinzugefügt und einvendor
-Verzeichnis inhelloworld_http
erstellt, das die Abhängigkeiten enthält.
Funktion lokal erstellen und testen
Führen Sie die folgenden Schritte aus, um die Funktion vor der Bereitstellung lokal zu erstellen und zu testen:
Erstellen Sie einen lokalen Webserver, auf dem die Funktion
helloHttp
ausgeführt wird:export FUNCTION_TARGET=helloHttp composer start
Testen Sie Ihre 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.
Diese Beispielfunktion gibt eine freundliche Nachricht "Hello, World!" zurück. angezeigt.
Funktion bereitstellen
Führen Sie den Befehl im Verzeichnis helloworld_http
aus, um die Funktion bereitzustellen:
gcloud functions deploy php-http-function \
--gen2 \
--runtime=php82 \
--region=REGION \
--source=. \
--entry-point=helloHttp \
--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 php-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.
Sie finden diese URL auch in der Google Cloud Console. Rufen Sie die Übersichtsseite „Cloud Functions“ auf und klicken Sie auf den Namen der Funktion, um die Seite Funktionsdetails zu öffnen. Öffnen Sie den Tab TRIGGER, um die URL Ihrer Funktion zu sehen.
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 \
php-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 so aussehen:
LEVEL: I
NAME: hellohttp
TIME_UTC: 2023-06-02 19:01:36.067
LOG:
LEVEL: I
NAME: hellohttp
TIME_UTC: 2023-06-02 19:01:22.814
LOG: Default STARTUP TCP probe succeeded after 1 attempt for container "hello_http-1" on port 8080.
LEVEL: I
NAME: hellohttp
TIME_UTC: 2023-06-02 19:01:22.777
LOG: [pid1-nginx] Starting nginx (pid 17): /usr/sbin/nginx -c /tmp/nginxconf-953701689/nginx.conf [session:R8F8ZJ5]
LEVEL: I
NAME: hellohttp
TIME_UTC: 2023-06-02 19:01:22.766
LOG: [pid1-nginx] Successfully connected to /tmp/google-config/app.sock after 556.430499ms [session:R8F8ZJ5]
Logs mit dem Logging-Dashboard ansehen
Um die Logs für Ihre Funktion mit dem Logging-Dashboard aufzurufen, öffnen Sie die Cloud Functions-Übersichtsseite. Klicken Sie in der Liste auf den Namen Ihrer Funktion und dann auf den Tab Logs.