直接调用 Cloud Functions 函数
为了支持快速迭代和调试,Cloud Functions 在命令行界面中提供了一个 call
命令,并在 Google Cloud 控制台界面中提供了测试功能。这样,您就可以直接调用函数,确保其行为符合预期。在这种情况下,函数会立即执行,即使它可能是为响应特定事件而部署的也是如此。
使用 Google Cloud CLI
如需使用 gcloud CLI 直接调用函数,请使用 gcloud functions call
命令,并在 --data
参数中以 JSON 格式提供函数所需的任何数据。例如:
gcloud functions call YOUR_FUNCTION_NAME --data '{"name":"Keyboard Cat"}'
其中,YOUR_FUNCTION_NAME
是您要执行的函数的名称。--data
是发送给您的函数的参数,如下所示:
- 对于 HTTP 函数,您提供的数据将以 POST 请求正文的形式发送。
- 对于后台函数,数据将以事件数据形式直接传递给您的函数。 如需详细了解如何在后台函数中访问事件数据,请参阅后台函数参数。
- 对于 CloudEvent 函数,数据将以事件数据形式直接传递给您的函数。如需详细了解如何在 CloudEvent 函数中访问事件数据,请参阅 CloudEvent 函数参数。
使用 Google Cloud 控制台
如需通过 Google Cloud 控制台直接调用函数,请按以下步骤操作:
从列表中点击要调用的函数的名称。
此时将转到函数详情 (Function details) 页面。
点击测试标签。
在触发事件字段中,以 JSON 格式输入函数所需的任何数据。
点击测试函数。
函数的响应显示在输出字段中,单项执行的日志显示在日志字段中。
Cloud Pub/Sub 事件驱动的函数示例
本示例演示了如何直接调用由 Cloud 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'"}'
您还可以从 Google Cloud 控制台界面调用该函数:只需在触发事件字段中使用相同的事件数据即可。