使用 Pub/Sub 触发 Cloud Functions 函数

本教程介绍如何使用 Cloud Scheduler 和 Pub/Sub 触发 Cloud Functions 函数。Cloud Scheduler 的常见用例之一是能够安排 Cloud Function 的执行。 您将学习以下内容:

  • 创建一个订阅 Pub/Sub 主题的简单 Cloud Functions 函数。
  • 创建 Pub/Sub 主题以触发该函数。
  • 创建 Cloud Scheduler 作业,以调用 Pub/Sub 触发器。
  • 运行 Cloud Scheduler 作业。
  • 验证运行是否成功。

准备工作

本教程假设您已经完成了 Cloud Scheduler 快速入门。因此,您可以使用以下工具和资源:

  • 启用了结算功能的 Google Cloud 项目。

  • 位于 App Engine 支持的某个位置的 App Engine 应用。

  • 项目上已启用的 Cloud Scheduler API 和 Pub/Sub API。您在学习本教程的过程需要启用 Cloud Functions API。

费用

本教程使用 Google Cloud 的以下收费组件:

  • Cloud Functions
  • Pub/Sub
  • Cloud Scheduler

您可使用价格计算器根据您的预计使用情况来估算费用。 Google Cloud 新用户可能有资格申请免费试用

创建 Cloud Functions 函数:

  1. 访问控制台中的 Cloud Functions 页面:

    转到 Cloud Functions 页面

  2. 点击启用 API 按钮。

  3. 点击创建函数按钮。

    图片

  4. 为您的函数命名。接受默认内存分配。

  5. 触发器下拉列表中选择 Pub/Sub

  6. 从下拉列表中选择现有主题,或使用创建新主题弹出窗口创建新主题。您的函数现已订阅该主题。 记下主题的名称,稍后您将会用到。

  7. 接受其他所有内容的默认值,包括示例 index.jspackage.json 代码。

  8. 点击创建

创建 Cloud Scheduler 作业

  1. 访问控制台中的 Cloud Scheduler 页面:

    转到 Cloud Scheduler 页面

  2. 点击创建作业按钮。

  3. 如有必要,选择要运行作业的区域。

  4. 为您的作业命名,并视需要添加说明。

  5. 使用 unix-cron 格式指定作业的频率

    * * * * *
    

    如需了解详情,请参阅配置 Cron 作业时间表

  6. 选择您所在的时区。

  7. 目标下拉列表中选择 Pub/Sub

  8. 键入您在上面选择的主题名称。

  9. 添加要发送到您的目标的简短负载字符串。

  10. 点击创建

您现在将获得每分钟向您的 Pub/Sub 主题发送一条消息的 cron 作业。您的 Cloud Function 已订阅该主题。

让我们运行您刚刚创建的作业。

运行作业

  1. 打开 Cloud Scheduler 控制台页面:

    转到 Cloud Scheduler 页面

  2. 点击立即运行按钮。

    由于进行相关必要配置,在项目中创建的第一个作业可能需要几分钟才能在第一次调用时运行。所以您可能需要等待一会儿。

  3. 注意结果列。

    图片

恭喜!您刚刚使用控制台查看了运行向 Pub/Sub 发送一条消息的 cron 作业的结果。接下来,您将了解如何验证您的 Cloud Function 是否成功执行。

验证 Cloud Functions 中的结果:

要验证您的 cron 作业是否成功触发了您的 Cloud Function,请执行以下操作:

  1. 访问控制台中的 Cloud Functions 页面:

    转到 Cloud Functions 页面

  2. 点击函数名称。

    图片

  3. 函数详细信息页面将打开。检查调用情况。

    图片

    恭喜!你的函数已经得到执行。

  4. 点击查看日志

    图片

  5. 查看调用的相关详情。

    图片

清理

为避免因本教程中使用的资源导致您的 Google Cloud 帐号产生费用,请执行以下操作:

删除 Cloud Scheduler 作业

  1. 转到 Cloud Console 中的 Cloud Scheduler 页面。

    转到“Cloud Scheduler”页面

  2. 点击作业旁边的复选框。

  3. 点击页面顶部的删除按钮并确认删除操作。

删除 Pub/Sub 主题

  1. 转到 Cloud Console 中的 Cloud Pub/Sub 页面。

    转到 Pub/Sub 页面

  2. 点击主题旁边的复选框。

  3. 在页面顶部,点击删除并确认删除操作。

删除 Cloud Functions 函数

  1. 转到 Cloud Functions 网页。

    转到 Cloud Functions 页面

  2. 点击函数旁边的复选框。

  3. 点击页面顶部的删除按钮并确认删除操作。

删除项目

如果您为本教程创建了项目时需要执行此操作。

  1. 在 Cloud Console 中,转到管理资源页面。

    转到“管理资源”

  2. 在项目列表中,选择要删除的项目,然后点击删除
  3. 在对话框中输入项目 ID,然后点击关闭以删除项目。