在本機測試函式
本指南將說明如何使用 gcloud functions
指令,從本機呼叫來源程式碼中的函式。如要瞭解如何在本機開發及測試使用 Functions Framework 的 Cloud Run 函式,請參閱「本機函式開發」一文。
如要針對使用 Cloud Functions v2 API 建立的函式快速進行疊代和偵錯,您可以在指令列介面中使用 call
指令。這樣一來,您就能直接叫用函式,確保函式正常運作。這會導致函式立即執行,即使該函式可能已部署來回應特定事件也是如此。
使用 Google Cloud CLI 測試函式
如要使用 gcloud CLI 直接叫用函式,請使用 gcloud functions call
指令,並在 --data
引數中以 JSON 格式提供函式預期的任何資料。例如:
gcloud functions call YOUR_FUNCTION_NAME \
--region=REGION --gen2 \
--data '{"name":"Kalani"}'
取代:
- YOUR_FUNCTION_NAME:您要測試的函式名稱
- REGION:函式部署至的 Google Cloud 區域
--data
引數會傳送至函式,如下所示:
- 對於 HTTP 函式,您提供的資料會以 POST 要求的主體傳送。
- 對於事件驅動函式,系統會直接將資料做為事件資料傳遞至函式。
詳情請參閱 gcloud functions call
說明文件。
Cloud Pub/Sub 事件驅動函式範例
本例說明如何直接叫用由 Pub/Sub 事件觸發的事件驅動函式:
Node.js
Python
Go
Java
C#
Ruby
PHP
如要直接叫用函式,請傳送 PubsubMessage
,該函式會將 base64 編碼資料做為事件資料:
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'"}'
本範例 CLI 使用 bash
或 sh
語法。這項功能適用於 Linux 和 Mac 環境,但不適用於 Windows。