如何在没有云功能的情况下在GCP中安排更长的Python脚本

Dom*_*aul 1 python python-3.x google-cloud-platform

我有一个脚本可以从 API 下载大量数据。该脚本运行大约需要两个小时。我想在 GCP 上运行该脚本,并将其安排为每周周日运行一次,以便我们在第二天就可以在 SQL 数据库(也在 GCP 上)中获得最新数据。

我知道 cronjobs,但不想只为这个脚本运行整个服务器。我已经查看了云函数和云调度程序,但由于脚本执行时间太长,我无法在云函数上运行它,因为最大执行时间为 9 分钟(从这里开始)。有没有其他方法可以安排 python 脚本运行?

先感谢您!

gui*_*ere 6

如果运行脚本超过 1 小时,则需要使用计算引擎。(Cloud Run只能存活1h)。

但是,您可以使用云调度程序。这里该怎么做

  • 创建具有您想要的频率的云调度程序
    • 在此调度程序上,使用Compute Engine Start API
    • 在高级部分,选择一个有权启动VM实例的服务帐户(创建一个或重复使用一个)
    • 选择 OAuth 令牌作为身份验证模式(不是 OIDC)
  • 创建一个计算引擎(您将从 Cloud Scheduler 开始)
    • 添加一个启动脚本来触发您的长期工作
    • 在脚本末尾,添加一行以关闭虚拟机(例如使用 Gcloud)

注意:启动脚本以 ROOT 用户身份运行。注意默认主目录和创建文件的权限