直接调用 Cloud Run 函数
为了支持快速迭代和调试,Cloud Run functions 在命令行界面中提供了一个 call
命令,并在 Google Cloud 控制台界面中提供了测试功能。这样,您就可以直接调用函数,确保其行为符合预期。在这种情况下,函数会立即执行,即使它可能是为响应特定事件而部署的也是如此。
使用 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 请求正文的形式发送。
- 对于 CloudEvent 函数,数据将以事件数据形式直接传递给您的函数。
如需了解详情,请参阅 gcloud functions call
文档。
使用 Google Cloud Console 测试您的函数
如需通过 Google Cloud 控制台直接调用函数,请按以下步骤操作:
从列表中点击要调用的函数的名称。 此时将转到函数详情 (Function details) 页面。
点击测试标签。
在配置触发事件字段中,以 JSON 格式输入函数所需的任何数据。
点击 + 添加查询参数和 + 添加标头参数,以根据需要向函数调用添加查询参数和标头参数。
Google Cloud 控制台会将您指定的参数组合到 CLI 测试命令窗口中的
gcloud functions call
命令中。选择在 Cloud Shell 中运行以打开 Cloud Shell 窗口,以运行此命令。
在
gcloud functions call
命令显示在 Cloud Shell 窗口中后,按 Enter 触发该命令。
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'"}'
此 CLI 示例使用 bash
或 sh
语法。它适用于 Linux 和 Mac 环境,但不适用于 Windows。
您还可以通过在触发事件字段中使用相同的事件数据,从 Google Cloud 控制台调用该函数。