替代 Google Cloud Function 的替代方案

And*_*dii 2 google-app-engine google-compute-engine google-cloud-platform google-cloud-functions

我正在使用 Google Cloud Function 来运行 ETL 作业:

  1. 从 JSON API 获取数据
  2. 使用另一个 API 丰富该数据的每一行
  3. 写入云存储

云调度程序 cron 作业每晚运行以触发云功能。我还可以手动运行管道来查询特定日期。云函数是用Python编写的。

这项工作的运行时间总是接近 9 分钟,但几个月来效果还不错。不幸的是,现在我已经达到了 Google Cloud Functions 的 9 分钟硬限制,我想知道我的最佳选择是什么:

  1. 设置计算引擎
  2. 设置应用程序引擎
  3. 使用云函数来并行化它并节省时间。

还有更好的选择吗?哪种 GCP 服务非常适合此任务?您有任何最佳实践吗?我真的很喜欢云功能的简单性,但这当然需要权衡......

gui*_*ere 7

我建议您使用云运行

  • 今天的暂停时间为 15 分钟,很快就会增加 4 次!这足以供您处理。
  • 如果您的代码可以利用多个 CPU,则您可以通过 Cloud Run 使用 2 个 CPU。
  • 但是,如果可以同时进行多个处理,Cloud Run 可以在同一实例上处理最多 80 个并发请求,而 Cloud Function 只能处理一个。如果您在实例上执行高计算,最好避免并发。将 --concurrency 参数设置为 1,以获得与 Cloud Function 完全相同的行为。

写了一篇文章,将一个简单的函数包装到 Cloud Run 服务中。几行代码,一个额外的导入(flask)就这样!为 python放置一个标准 Dockerfile标准 Dockerfile并部署!

使用新的Buildpack 功能,您甚至可以避免创建 Dockerfile!Buildpack 安装在 Cloud Shell 上,如果您使用 Cloud Build,如果您需要,我有一个工作示例(请告诉我!)