安排运行事件驱动的 Cloud Run 函数

本教程介绍了如何使用 Cloud Scheduler 并通过指定 Pub/Sub 主题来触发事件驱动型 Cloud Run 函数。如果您的函数应直接触发以响应 Google Cloud 项目中的事件(例如 Pub/Sub 主题中收到消息或 Cloud Storage 存储桶发生更改),请使用事件驱动型函数。

请注意,您还可以通过指定函数的 HTTP 端点来安排 HTTP 函数的运行时间。如果您需要函数具有网址端点并响应 HTTP 请求(例如针对 webhook),可使用 HTTP 函数。如需了解详情,请参阅 Cloud Run 函数的类型

Cloud Scheduler 的常见用例之一是安排 Cloud Run 函数的执行。在此教程中,您将学习以下操作:

  1. 创建一个订阅 Pub/Sub 主题的简单 Cloud Run 函数。
  2. 创建一个 Cloud Scheduler 作业,用于将消息发布到 Pub/Sub 主题。
  3. 运行 Cloud Scheduler 作业。
  4. 验证 Cloud Run 函数是否已由 Cloud Scheduler 作业触发。

创建事件驱动型 Cloud Run 函数

创建一个事件驱动型函数,该函数会直接触发以响应 Google Cloud 项目中的事件;在本例中,该事件是指消息发布到 Pub/Sub 主题。

  1. 在 Google Cloud 控制台中,前往 Cloud Run 函数页面。

    前往 Cloud Run functions

  2. 点击 创建函数

  3. 基本信息部分中,执行以下操作:

    1. 环境列表中,选择第 2 代
    2. 为函数输入一个名称。
    3. 区域列表中,选择一个区域。
  4. 触发部分中,执行以下操作:

    1. 触发器类型列表中,选择 Cloud Pub/Sub
    2. Cloud Pub/Sub 主题列表中,选择现有主题;如需创建新主题,请点击创建主题。记下主题的名称,因为您会在后续步骤中用到它。
    3. 点击更多选项

      系统会打开 Eventarc 触发器面板。

  5. Eventarc 触发器面板中,执行以下操作:

    1. 如果系统提示您允许 Pub/Sub 服务创建调用函数所需的身份令牌,请点击授予
    2. 服务账号列表中,选择您之前创建的服务账号。
    3. 接受其他默认设置。
    4. 点击保存触发器

      Eventarc 触发器面板随即会关闭。

  6. 接受其他默认值,然后点击下一步

  7. 请勿修改默认运行时语言和示例代码。该代码不使用任何云服务,也不需要启用其他权限。点击部署

创建 Cloud Scheduler 作业

创建以 Pub/Sub 为目标的 Cloud Scheduler 作业。

  1. 在 Google Cloud 控制台中,前往 Cloud Scheduler 页面。

    前往 Cloud Scheduler

  2. 点击 创建作业

  3. 输入作业的名称。

  4. 区域列表中,选择一个区域。

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

    30 16 * * 7
    

    如需了解详情,请参阅 Cron 作业格式和时区

  6. 时区列表中,选择一个时区。

  7. 点击继续

  8. 目标类型列表中,选择 Pub/Sub

  9. 选择您之前创建的 Pub/Sub 主题。

  10. 消息正文字段中,输入一条要发送到您的 Pub/Sub 目标主题的字符串,例如:“Hello world!”

  11. 点击创建

您已创建了一个 cron 作业,该作业会在周日 16:30 向您的 Pub/Sub 主题发送一条消息。您的 Cloud Run 函数已订阅该主题。

运行 Cloud Scheduler 作业

现在,您可以运行创建的作业了。

  1. 在 Google Cloud 控制台中,前往 Cloud Scheduler 页面。

    前往 Cloud Scheduler

  2. 选中您创建的作业对应的复选框,然后点击强制运行

    首次调用时,在项目中创建的第一个作业可能需要几分钟才能完成配置并运行。

  3. 作业运行后,上次执行的状态应显示为 Success

验证 Cloud Run functions 中的结果

您可以验证 Cloud Run 函数是否已成功被 cron 作业触发并执行。

  1. 在 Google Cloud 控制台中,前往 Cloud Run functions 页面。

    前往 Cloud Run functions

  2. 点击函数名称。

    函数详细信息页面随即打开,每秒调用次数图表会显示函数的首次调用。

  3. 点击日志标签页。

    您应该会看到类似 Hello, YOUR_STRING! 的日志条目