【发布时间】:2021-02-11 19:43:32
【问题描述】:
我已经使用 Google CLoud 几个星期了,由于我有限的 GCP 知识,我面临着一个大问题。
我有一个 python 项目,其目标是使用它的 API 从网站“抓取”数据。我的项目在执行期间运行了数万个请求,并且可能需要很长时间(几个小时,也许更多)
我的项目中有 4 个 python 脚本,它们都是由 bash 脚本编排的。
执行如下:
- 第一个脚本检查包含所有请求指令的 CSV 文件,然后执行请求,将请求的所有结果保存在 CSV 文件中
- 第二个脚本检查之前创建的 CSV 文件并重新创建另一个 CSV 指令文件
- 第一个脚本再次运行,但使用新指令并再次将结果保存在 CSV 文件中
- 再次检查第二个脚本并再次执行相同操作...
- ...等等几次
- 第三个脚本清理数据、删除重复项并创建唯一的 CSV 文件
- 第四个脚本将最终的 CSV 文件上传到存储桶
现在我想使用那个 bash 脚本,并且我想自动执行这些脚本。每周一次。
这里的问题是执行时间。这是我已经测试过的:
Google App Engine : GAE 上的请求超时限制为 10 分钟,我的函数可以运行几个小时。 GAE 在这里不可用。
Google Compute Engine:我的脚本将最多运行。每周 10 到 15 个小时,在这段时间内保持计算引擎的运行成本太高了。
如何在云环境中自动执行我的脚本?在不更改代码的情况下,我可能没有想到的解决方案是什么?
谢谢
【问题讨论】:
-
你能并行运行所有指令吗?
-
遗憾的是,他们必须一个接一个地执行
-
速度令人遗憾,但无服务器解决方案是可能的,需要更多监控,但需要更少的虚拟机管理。
-
想到了Cloud Build,但这意味着使用每个步骤的python脚本构建一个容器,并像cloud build一样在yaml中重新编写编排脚本。
标签: python google-app-engine google-cloud-platform google-compute-engine google-cloud-run