本教程介绍了如何通过在 Cloud Scheduler 中指定 HTTP 端点来调度 HTTP Cloud Run 函数。如果您需要函数具有网址端点并响应 HTTP 请求(例如针对 webhook),可使用 HTTP 函数。
或者,如果您创建了 CloudEvents 函数,请使用 Eventarc 事件触发器来安排函数响应项目中的事件。Eventarc 可以触发 Pub/Sub 主题上的消息、Cloud Storage 存储桶中的更改等。如需了解详情,请参阅 Cloud Run functions 的类型。
Cloud Scheduler 的常见用例之一是安排 Cloud Run 函数的执行。在此教程中,您将学习以下操作:
创建 HTTP Cloud Run 函数
创建由 Cloud Scheduler 触发的 HTTP 函数。
在 Google Cloud 控制台中,前往 Cloud Run 页面。
点击编写函数。
在配置部分中,执行以下操作:
- 在服务名称字段中,输入函数的名称。
- 在区域列表中,选择一个区域。
- 请勿修改默认的运行时语言。
对于身份验证,请选择需要进行身份验证。
如果您通过网域限制组织政策来限制项目的未经身份验证的调用,则您需要按照测试专用服务中的说明访问已部署的服务。
如需了解详情,请参阅进行身份验证以便调用。
接受其他默认值,然后点击创建。
复制函数的 HTTP 网址。
如需了解详情(包括如何使用 Terraform 部署 Cloud Run 函数),请参阅部署 Cloud Run 函数。
创建 Cloud Scheduler 作业
创建一个使用 HTTP 触发操作的 Cloud Scheduler 作业。
在 Google Cloud 控制台中,前往 Cloud Scheduler 页面。
点击
创建作业。输入作业的名称。
在区域列表中,选择一个区域。
使用 unix-cron 格式指定作业的频率:
30 16 * * 7
如需了解详情,请参阅 Cron 作业格式和时区。
在时区列表中,选择一个时区。
点击继续。
在目标类型列表中,选择 HTTP。
在网址字段中,输入您之前复制的函数的 HTTP 网址。
在身份验证标头列表中,选择添加 OIDC 令牌。
在服务账号列表中,选择您之前创建的服务账号。
在受众群体字段中,输入您之前复制的函数的 HTTP 网址。
点击创建。
您已创建了一个 Cron 作业,该作业会在周日 16:30 运行 Cloud Run 函数。
运行 Cloud Scheduler 作业
现在,您可以运行创建的作业了。
在 Google Cloud 控制台中,前往 Cloud Scheduler 页面。
选中您创建的作业对应的复选框,然后点击强制运行。
首次调用时,在项目中创建的第一个作业可能需要几分钟才能完成配置并运行。
作业运行后,上次执行的状态应显示为
Success
。
验证 Cloud Run functions 中的结果
您可以验证 Cloud Run 函数是否已成功被 cron 作业触发并执行。
在 Google Cloud 控制台中,前往 Cloud Run 页面。
依次选择过滤服务 > 部署类型 > 函数。这会过滤服务列表,以仅显示函数。
点击函数名称。
系统会打开服务详情页面,并显示服务指标。
点击日志标签页。
您应该会看到类似
POST 200 146 B 5 ms Google-Cloud-Scheduler https://FUNCTION_NAME
的日志条目