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 Cloud Pub/Sub-Thema oder Änderungen in einem Cloud Storage-Bucket.
Das Beispiel zeigt, wie Sie eine einfache HTTP-Funktion erstellen.
.Inhaltsverzeichnis
- Google Cloud-Projekt mit der gcloud CLI erstellen
- Funktion erstellen
- Abhängigkeiten angeben
- Funktionen lokal erstellen und testen
- Funktion bereitstellen
- Bereitgestellte Funktion testen
Google Cloud-Projekt mit der gcloud CLI erstellen
- Melden Sie sich bei Ihrem Google Cloud-Konto an. Wenn Sie mit Google Cloud noch nicht vertraut sind, erstellen Sie ein Konto, um die Leistungsfähigkeit unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
-
Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.
-
Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.
-
Cloud Functions and Cloud Build APIs aktivieren.
-
Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.
-
Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.
-
Cloud Functions and Cloud Build APIs aktivieren.
- 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_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.
Abhängigkeiten angeben
Abhängigkeiten werden mit Composer in PHP verwaltet. Wenn Composer noch nicht installiert ist, gehen Sie so vor:
Laden Sie Composer an einen beliebigen Speicherort herunter.
Nach dem Download verschieben Sie die Datei
composer.phar
in ein Verzeichnis, das sich in Ihrem Systempfad befindet. Beispiel:mv composer.phar /usr/local/bin/composer
Geben Sie als Nächstes die Abhängigkeiten der Funktion an:
Fügen Sie eine
composer.json
-Datei mit Abhängigkeiten zum Funktionscodeverzeichnis hinzu, wobeiFUNCTION_TARGET=FUNCTION_NAME
den Namen der Funktion angibt. In diesem Beispiel istFUNCTION_NAME
helloHttp
.Führen Sie im Verzeichnis mit dem Funktionscode, das auch die soeben erstellte Datei
composer.json
enthalten muss, den folgenden Befehl aus:composer require google/cloud-functions-framework
Dadurch wird das Functions Framework zu
composer.json
hinzugefügt. Außerdem wird in Ihrem Funktionscodeverzeichnis einvendor/
-Verzeichnis erstellt, das die Abhängigkeiten enthält.
Funktionen lokal erstellen und testen
Wenn Sie die Schritte unter Abhängigkeiten angeben ausgeführt haben, können Sie die Funktion lokal erstellen und testen.
Der folgende Befehl erstellt einen lokalen Webserver, auf dem die Funktion helloHttp
ausgeführt wird:
export FUNCTION_TARGET=helloHttp
php -S localhost:8080 vendor/bin/router.php
Wird die Funktion erfolgreich erstellt, wird eine URL angezeigt. Sie können diese URL mit Ihrem Webbrowser aufrufen: http://localhost:8080/
. Die Meldung Hello World!
sollte angezeigt werden.
Alternativ können Sie Anfragen mit curl
von einem anderen Terminalfenster aus an diese Funktion senden:
curl localhost:8080
# Output: Hello World!
Funktion bereitstellen
Stellen Sie die Funktion mit einem HTTP-Trigger mit diesem Befehl im Verzeichnis helloworld_http
bereit:
gcloud functions deploy helloHttp --runtime php82 --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.
Bereitgestellte 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 helloHttp
Dies sollte so aussehen:
https://GCP_REGION-PROJECT_ID.cloudfunctions.net/helloHttp
Rufen Sie diese URL in Ihrem Browser auf: Jetzt sollten Sie die Meldung "Hello World!" sehen.
Übergeben Sie einen Namen in der HTTP-Anfrage, wie in dieser Beispiel-URL gezeigt:
https://GCP_REGION-PROJECT_ID.cloudfunctions.net/helloHttp?name=NAME
Jetzt sollten Sie die Meldung "Hello
NAME
!" sehen.
Logs ansehen
Befehlszeilentool verwenden
Logs für Cloud Functions können über die Cloud Logging-UI und die Google Cloud CLI aufgerufen werden.
Wenn Sie mit der gcloud CLI Logs für Ihre Funktion aufrufen möchten, verwenden Sie den Befehl gcloud 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 rvb9j0axfclb 2019-09-18 22:06:25.983 Function execution started D helloHttp rvb9j0axfclb 2019-09-18 22:06:26.001 Function execution took 19 ms, finished with status code: 200
Logging-Dashboard verwenden
Sie können Logs für Cloud Functions auch über die Google Cloud Console aufrufen.