我希望在 Google Cloud Run 上运行可能执行时间超过 60 分钟的计算。我知道这是最长执行时间,但我想知道是否有办法解决这个问题。我正在考虑定期向运行计算的容器的 API 端点发送请求以保持服务正常运行,但我不确定位于容器前面的负载均衡器是否真的会将其定向到运行作业的容器。
另外,我正在考虑使用 Fargate,但它的一个缺点是它一直在运行,我不确定是否有办法解决这个问题。还有其他我应该考虑的选项/配置吗?任何帮助都将不胜感激。
答案1
Cloud Run 当前可配置的最大请求超时时间为 3,600 秒。目前尚无支持的方法可以解决该问题。
请求不会在后台运行,因此您无法定期 ping 服务以保持任务运行。
谷歌即将推出Cloud Run 作业。目前处于预览阶段。我不知道发布时间表。
Cloud Run 作业使您能够在 Cloud Run 中运行数据处理和其他运行至完成的工作负载,同时享受与 Cloud Run 相同的简单开发者体验以及快速启动和扩展功能
注意:注册链接为Cloud Run 作业。我不知道是否可以在论坛上分享链接。有时预览功能仅受邀请者才能使用。
答案2
截至 2021 年 9 月
您现在可以使用 Cloud Run Always On 分配 / no-cpu-throttling [1] [2]。
gcloud 运行部署--图像 IMAGE_URL--no-cpu-throttling
[1]https://cloud.google.com/blog/products/serverless/cloud-run-gets-always-on-cpu-allocation [2]https://cloud.google.com/run/docs/configuring/cpu-allocation
答案3
Cloud Run Jobs 增加了对 24 小时截止时间的支持(目前处于预览阶段):https://cloud.google.com/run/docs/configuring/task-timeout