本页面介绍了如何使用 Cloud Scheduler 按时间表执行 Cloud Run 作业。
所需的角色
如需获得本页面中描述的操作所需的权限,请让管理员向您授予 Cloud Run 作业的 IAM 角色:
- Cloud Scheduler Admin (
roles/cloudscheduler.admin
) 或具有cloudscheduler.jobs.create
权限的自定义角色 - Cloud Run Invoker (
roles/run.invoker
)(用于使用 Google Cloud CLI 执行作业),或者 Cloud Run Developer (roles/run.developer
)(用于使用 Google Cloud 控制台执行作业)
如需查看与 Cloud Run 关联的 IAM 角色和权限的列表,请参阅 Cloud Run IAM 角色和 Cloud Run IAM 权限。如果您的 Cloud Run 作业与 Google Cloud API(例如 Cloud 客户端库)进行交互,请参阅服务身份配置指南。如需详细了解如何授予角色,请参阅部署权限和管理访问权限。
准备工作
将 Cloud Run 作业配置为按时间表执行
如需按计划执行 Cloud Run 作业,请执行以下操作:
控制台
点击要按时间表执行的作业。
点击触发器标签页。
点击添加 Scheduler 触发器。
如果您还没有为您的项目启用 Cloud Scheduler API,系统会提示您在最右侧面板中执行此操作:点击启用 API。
填写 Cloud Scheduler 作业表单
在“定义时间表”(Define a schedule) 下:
为 Cloud Scheduler 作业命名。
为 Cloud Scheduler 作业选择一个区域。该区域不需要与 Cloud Run 作业使用的区域匹配。
使用 unix-cron 格式指定作业执行的频率,例如
0 12 * * *
选择您所在的时区。
点击继续。
在服务账号下拉菜单中,选择有权调用当前 Cloud Run 服务的服务账号。
点击创建以创建 Cloud Scheduler 作业,该作业会按指定的频率执行 Cloud Run 作业。
命令行
运行以下命令:
gcloud scheduler jobs create http SCHEDULER_JOB_NAME \ --location SCHEDULER_REGION \ --schedule="SCHEDULE" \ --uri="https://CLOUD_RUN_REGION-run.googleapis.com/apis/run.googleapis.com/v1/namespaces/PROJECT-ID/jobs/JOB-NAME:run" \ --http-method POST \ --oauth-service-account-email PROJECT-NUMBER-compute@developer.gserviceaccount.com
替换
- 将 SCHEDULER_JOB_NAME 替换为您要为调度器作业指定的名称。
- 将 SCHEDULER_REGION 替换为 Cloud Scheduler 支持的区域,例如
europe-west2
。 - 将 CLOUD_RUN_REGION 替换为 Cloud Run 作业所在区域。 对于预览版,请使用
europe-west9
。 - 将 SCHEDULE 替换为所需的频率,例如
0 12 * * *
。 - PROJECT-ID 替换为您的项目 ID。
- 将 PROJECT-NUMBER 替换为您的项目编号。
- 将 JOB-NAME 替换为您的 Cloud Run 作业。
Terraform
如需创建 Cloud Scheduler 作业来执行 Cloud Run 作业,请运行以下脚本:
如需了解如何应用或移除 Terraform 配置,请参阅基本 Terraform 命令。
Cloud Scheduler 将按指定的频率执行 Cloud Run 作业。
后续步骤
使用此功能后,您可以执行以下操作: