调度 cron 作业以触发云函数



有没有办法使用 cron.yaml 调度 cron 作业来触发 HTTP 云函数。我试图实现它,但传递整个 URL 会引发错误。

cron:
- description: "Test Call"
url: https://us-central1-***.cloudfunctions.net/helloGET
schedule: every 1 mins

当我尝试部署 cron 作业时,我在控制台中看到此错误

Unable to assign value 'https://us-central1-***.cloudfunctions.net/helloGET' to attribute 'url':
Value 'https://us-central1-***.cloudfunctions.net/helloGET' for url does not match expression '^(?:^/.*$)$'
in "/Users/xyz/Desktop/cron.yaml", line 3, column 8

我知道正在抛出错误,因为我有完整的 URL 路径,但如果我只传递以下内容,而不是完整路径

cron:
- description: "Test Call"
url: /helloGET
schedule: every 1 mins

然后它能够部署 cron 作业,但是当作业运行时,它会抛出 404 错误,因为通过传递路径而不是完整的 URL,我相信它正在应用程序引擎中查找 URL,并且由于我在应用程序引擎中没有任何代码并且我的服务调用在云函数中,它无法找到它。

还有没有办法将计划设置为每 1 秒而不是 1 分钟运行一次。

cron.yaml中的 url 需要是应用处理的 URl,而不是任意 - 这就是为什么只有相对路径有效。来自语法(强调我的(:

网址

必填。url 字段指定应用程序中的URL,该 将由 Cron 服务调用。

您可以做的是让您的应用程序 cron 处理程序访问触发云函数所需的任意 URL。请参阅发出 HTTP(S( 请求

至于低于 1 分钟的间隔 - cron 本身不支持。但是有一些方法可以实现几乎等效的东西,例如,使用Google App Engine进行高频数据刷新

最新更新