Funktion lokal testen
In dieser Anleitung erfahren Sie, wie Sie eine Funktion aus dem Quellcode mit einem gcloud functions
-Befehl lokal aufrufen. Informationen zum lokalen Entwickeln und Testen von Cloud Run-Funktionen mit dem Functions Framework finden Sie unter Lokale Funktionsentwicklung.
Für eine schnelle Iteration und schnelles Debugging von Funktionen, die mit der Cloud Functions v2 API erstellt wurden, können Sie den call
-Befehl in der Befehlszeile verwenden. So können Sie eine Funktion direkt aufrufen, um zu prüfen, ob sie sich erwartungsgemäß verhält. Das führt dazu, dass die Funktion sofort ausgeführt wird, obwohl sie eventuell für die Reaktion auf ein bestimmtes Ereignis bereitgestellt wurde.
Funktion mit der Google Cloud CLI testen
Verwenden Sie zum direkten Aufrufen Ihrer Funktion mit der gcloud CLI den gcloud functions call
-Befehl und geben alle Daten, die Ihre Funktion erwartet, im Argument --data
im JSON-Format an. Beispiel:
gcloud functions call YOUR_FUNCTION_NAME \
--region=REGION --gen2 \
--data '{"name":"Kalani"}'
Ersetzen Sie:
- YOUR_FUNCTION_NAME: Der Name der Funktion, die Sie testen.
- REGION: die Google Cloud Region, in der Ihre Funktion bereitgestellt wird
Das Argument --data
wird so an Ihre Funktion gesendet:
- Bei HTTP-Funktionen werden die von Ihnen angegebenen Daten als der Haupttext einer POST-Anfrage gesendet.
- Bei ereignisgesteuerten Funktionen werden die Daten direkt als die Ereignisdaten an Ihre Funktion weitergeleitet.
Weitere Informationen finden Sie in der Dokumentationgcloud functions call
.
Beispiel für ereignisgesteuerte Cloud Pub/Sub-Funktion
In diesem Beispiel wird gezeigt, wie eine ereignisgesteuerte Funktion direkt aufgerufen wird, die von Pub/Sub-Ereignissen ausgelöst wird:
Node.js
Python
Go
Java
C#
Ruby
PHP
Wenn Sie die Funktion direkt aufrufen möchten, senden Sie als Ereignisdaten eine PubsubMessage
, die base64-codierte Daten erwartet:
Node.js
DATA=$(printf 'Hello!'|base64) && gcloud functions call helloPubSub --data '{"data":"'$DATA'"}'
Python
DATA=$(printf 'Hello!'|base64) && gcloud functions call hello_pubsub --data '{"data":"'$DATA'"}'
Go
DATA=$(printf 'Hello!'|base64) && gcloud functions call HelloPubSub --data '{"data":"'$DATA'"}'
Java
DATA=$(printf 'Hello!'|base64) && gcloud functions call java-hello-pubsub --data '{"data":"'$DATA'"}'
C#
DATA=$(printf 'Hello!'|base64) && gcloud functions call csharp-hello-pubsub --data '{"data":"'$DATA'"}'
Ruby
DATA=$(printf 'Hello!'|base64) && gcloud functions call hello_pubsub --data '{"data":"'$DATA'"}'
PHP
DATA=$(printf 'Hello!'|base64) && gcloud functions call helloworldPubsub --data '{"data":"'$DATA'"}'
In diesem Beispiel für die Befehlszeile wird die Syntax von bash
oder sh
verwendet. Sie funktioniert in Linux- und Mac-Umgebungen, aber nicht unter Windows.