【问题标题】:How to schedule longer python scripts in GCP without cloud functions如何在没有云功能的 GCP 中安排更长的 python 脚本
【发布时间】:2020-10-25 17:41:19
【问题描述】:
我有一个从 API 下载大量数据的脚本。该脚本大约需要两个小时才能运行。我想在 GCP 上运行脚本,并安排它每周周日运行一次,这样我们的 SQL 数据库(也在 GCP 上)中的最新数据在第二天之前。
我知道 cronjobs,但不想只为这个单个脚本运行整个服务器。我查看了云函数和云调度程序,但由于脚本执行时间过长,我无法在云函数上运行它,因为最长执行时间为 9 分钟 (from here)。有没有其他方法可以安排 python 脚本运行?
提前谢谢你!
【问题讨论】:
标签:
python
python-3.x
google-cloud-platform
【解决方案1】:
要运行超过 1 小时的脚本,您需要使用 Compute Engine。 (Cloud Run 只能活 1 小时)。
但是,您可以使用 Cloud Scheduler。这里怎么办
- 以您想要的频率创建云调度程序
- 创建一个计算引擎(您将从 Cloud Scheduler 开始)
- 添加一个启动脚本来触发您的长期工作
- 在脚本的最后,添加一行来关闭 VM(以 Gcloud 为例)
注意:启动脚本以 ROOT 用户身份运行。注意默认主目录和创建文件的权限。