1

我每天使用 Cloud Scheduler 在 Cloud Run 中运行 python 脚本,以从 BigQuery 中提取数据并将其作为 CSV 文件上传到 Google Cloud Storage。Cloud Scheduler 设置使用带有 GET“HTTP 方法”的 HTTP“目标”。此外,Cloud Scheduler使用带有“添加 OIDC 令牌”选项的服务帐户 对https端点进行身份验证。

在为需要几秒钟的作业运行 Cloud Scheduler 和 Cloud Run 时,使用非常小的 BigQuery 数据子集运行时,Cloud Scheduler 中的“结果”始终显示“成功”并且作业按预期完成。但是,当使用完整的 BigQuery 数据集运行 Cloud Scheduler 和 Cloud Run 以执行需要几分钟的作业时,Cloud Scheduler 中的“结果”始终显示“失败”,即使 CSV 文件通常(尽管并非总是)上传到谷歌云存储按预期。

(1) 在完整的 BigQuery 数据集上运行 Cloud Scheduler 和 Cloud Run 时,为什么 Cloud Scheduler 中的“结果”总是显示“失败”,即使作业通常按预期完成?

(2) 如何修复 Cloud Scheduler 和 Cloud Run 以确保作业始终按预期完成,并且 Cloud Scheduler 中的“结果”始终显示“成功”?

4

1 回答 1

1

这是 Cloud Scheduler 的常见错误。我多次将它提升到谷歌,但直到现在它没有任何改变......

GUI(Web 控制台)不允许您配置任何内容,尤其是超时。您的 Cloud Scheduler 失败,因为它认为在您扫描完整的 BQ 数据集时它没有及时收到答案(这可能需要几分钟)

为了解决这个问题,请使用命令行 (gcloud),尤其attempt-deadline参数. 您可以查看其他参数:重试、退避、... 允许的自定义很有趣,但在 GUI 中不存在!

于 2020-04-13T13:35:33.830 回答