如何配置Cloud Scheduler在指定日期运行Cloud Run脚本?
使用Cloud Scheduler指定特定日期触发Cloud Run任务
你可以通过两种方式实现仅在指定日期触发Cloud Run任务,以下是具体操作方法:
方法一:为每个目标日期创建独立任务
这种方式直观易懂,避免复杂的表达式配置:
- 进入Cloud Scheduler控制台,点击「创建任务」
- 填写任务标识信息:
- 名称:建议包含日期,比如
cloud-run-trigger-20230313,方便后续识别 - 描述:可选,备注该任务对应执行日期
- 名称:建议包含日期,比如
- 设置频率(Cron表达式):
Cloud Scheduler支持带年份的扩展Cron格式,格式为分 时 日 月 周 年,针对你的需求:- 2023年3月13日(假设零点执行):
0 0 13 3 * 2023 - 2023年6月18日:
0 0 18 6 * 2023 - 2023年6月19日:
0 0 19 6 * 2023
若需在特定时段执行,修改「时」字段即可,比如上午9点执行则写成0 9 13 3 * 2023
- 2023年3月13日(假设零点执行):
- 配置目标信息:
- 目标类型选择「HTTP」
- URL填写你的Cloud Run服务的公开触发地址(格式示例:
https://<服务名>-<哈希值>.<区域>.run.app) - HTTP方法选择你的Cloud Run脚本支持的类型(如
POST或GET)
- 设置身份验证:
选择「服务帐号」,并指定拥有Cloud Run Invoker角色的服务帐号,确保Scheduler有权调用你的Cloud Run服务 - 点击「创建」完成任务,重复上述步骤为另外两个日期创建任务
方法二:合并同月份日期为单个任务
如果希望减少任务数量,可将同月份的日期合并:
- 为3月13日创建单独任务,Cron表达式为
0 0 13 3 * 2023,配置同方法一 - 为6月18-19日创建一个任务,Cron表达式为
0 0 18-19 6 * 2023,该表达式会在6月18日和19日的指定时间自动触发 - 其余目标配置和身份验证设置与方法一一致
关键注意点
- 必须在Cron表达式中指定年份
2023,否则任务会每年对应日期重复执行,不符合需求 - 确认服务帐号权限:确保Scheduler使用的服务帐号已被授予
roles/run.invoker角色,否则无法触发Cloud Run - 测试验证:创建任务后可点击「立即运行」按钮,快速验证任务是否能正常调用Cloud Run脚本
内容的提问来源于stack exchange,提问作者Ibrahim Ali
相关产品推荐
相关产品推荐

