超时 1 小时的无服务器 python?

光伏

我有几个遵循类似格式的 python 脚本:你传入一个日期,它或者: - 检查我的 S3 存储桶中文件名中包含该日期的文件,并解析它或者 - 运行一个 python 脚本,对它进行一些分析那个日期的文件。重要的是我需要有至少 1 小时的超时时间。

我正在寻找一种无服务器解决方案,它可以让我在一系列日期上调用这些函数,并并行运行它们。由于我的 python 脚本持续时间很长,AWS 和 Google Cloud Functions 等服务由于超时(分别为 15 分钟和 9 分钟)而无法工作。我已经查看了 Google Cloud Dataflow,但不确定这对于我相对简单的用例来说是否太过分了。

尽可能减少中断的东西很重要,所以我倾向于使用 AWS、谷歌云等的东西。

我还希望能够看到带有日志的每个作业进度的仪表板,以便我可以看到哪些日期已完成以及哪些日期有错误(以及错误是什么)

科尔班

AWS Lambda 或 GCP Cloud Functions 等微服务器的性质,根据他们的定义,是短期运行的。如果一个计算资源可能运行很长时间(我认为一个小时是很长的时间),那么微服务故事就不合适了。现在让我们看看我们真正想要的是什么。我假设你想要:

  • 提供可根据需要(例如一小时)运行的计算环境的能力。
  • 最小化成本(如果没有工作要做,就应该没有成本)。
  • 如果有大量并发工作要做,请根据需要扩大计算实例的数量,并在完成后减少数量。

一种可能的解决方案是使用 GCP 计算引擎和“托管实例组”的概念。使用这项技术,您可以定义一个 Compute Engine 模板,该模板将根据需要使用尽可能多(或尽可能少)的 CPU 和 RAM 来启动 Linux 或 Windows 虚拟机实例。实例的数量取决于您如何定义负载……包括降至零。当您定义 Compute Engine 模板时,您对其拥有 100% 的控制权,包括通过启动脚本定义初始启动应用程序。我可以想象你编写了一个运行你的应用程序的启动脚本。

虽然这确实比“你带来代码,我们带来其他一切”的口号更重要,但它是游戏状态。其他潜在的解决方案是(正如您所暗示的)检查您处理的性质并将其细分为更细粒度和更小的工作单元。

如果 Compute Engines 感觉太多了,另一种选择是采用 Kubernetes 并拥有一个包含包含您的应用程序的 pod 的集群。

参考:

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章