Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 有1小时超时的无服务器python?_Amazon Web Services_Google Cloud Platform_Aws Lambda - Fatal编程技术网

Amazon web services 有1小时超时的无服务器python?

Amazon web services 有1小时超时的无服务器python?,amazon-web-services,google-cloud-platform,aws-lambda,Amazon Web Services,Google Cloud Platform,Aws Lambda,我有几个类似格式的python脚本:你传入一个日期,它要么:-检查我的S3存储桶中文件名中包含该日期的文件,并对其进行解析,要么-运行python脚本对该日期的文件进行分析。重要的是,我需要有一个至少1小时的超时时间 我正在寻找一个无服务器的解决方案,可以让我在一系列日期调用这些函数,并并行运行它们。由于我的python脚本持续时间很长,AWS和Google Cloud函数等服务由于超时(分别为15分钟和9分钟)而无法工作。我已经看过谷歌云数据流,但不确定这对于我相对简单的用例来说是否有点过分

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

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

一些尽可能少的中断是很重要的,所以我倾向于使用AWS、谷歌云等


我还希望能够通过日志查看每个作业进度的仪表板,这样我就可以查看哪些日期已经完成,哪些日期有错误(加上错误是什么)

微服务器(如AWS Lambda或GCP Cloud功能)的本质是,根据其定义,短时间运行。如果计算资源可能运行很长一段时间(我考虑一小时很长时间),那么微服务的故事不是一个很好的匹配。现在让我们看看我们真正想要什么。我想你想要:

  • 提供一个计算环境的能力,可以根据需要运行多长时间(如一小时)
  • 最小化成本(如果没有工作要做,就应该没有成本)
  • 如果有大量并发工作要做,请根据需要增加计算实例的数量,并在完成时减少数量
一种可能的解决方案是使用GCP计算引擎和“托管实例组”的概念。使用此技术,您可以定义一个计算引擎模板,该模板将根据需要使用尽可能多(或尽可能少)的CPU和RAM来加速Linux或Windows VM实例。实例数是定义加载方式的函数。。。包括降到零。定义计算引擎模板时,您可以100%控制它,包括通过启动脚本定义初始启动应用程序。我可以想象你编写一个启动脚本来运行你的应用程序

虽然这确实比“你带来代码,我们带来一切”的咒语更重要,但这是游戏的状态。其他可能的解决方案是(正如您所提到的)检查已处理任务的性质,并将其细分为更细粒度和更小的工作单元

如果计算引擎感觉太多,另一种选择是采用Kubernetes,并使用包含应用程序的pod的集群

参考资料:


微服务器(如AWS Lambda或GCP云功能)的本质是,根据其定义,短时间运行。如果计算资源可能运行很长一段时间(我考虑一小时很长时间),那么微服务的故事不是一个很好的匹配。现在让我们看看我们真正想要什么。我想你想要:

  • 提供一个计算环境的能力,可以根据需要运行多长时间(如一小时)
  • 最小化成本(如果没有工作要做,就应该没有成本)
  • 如果有大量并发工作要做,请根据需要增加计算实例的数量,并在完成时减少数量
一种可能的解决方案是使用GCP计算引擎和“托管实例组”的概念。使用此技术,您可以定义一个计算引擎模板,该模板将根据需要使用尽可能多(或尽可能少)的CPU和RAM来加速Linux或Windows VM实例。实例数是定义加载方式的函数。。。包括降到零。定义计算引擎模板时,您可以100%控制它,包括通过启动脚本定义初始启动应用程序。我可以想象你编写一个启动脚本来运行你的应用程序

虽然这确实比“你带来代码,我们带来一切”的咒语更重要,但这是游戏的状态。其他可能的解决方案是(正如您所提到的)检查已处理任务的性质,并将其细分为更细粒度和更小的工作单元

如果计算引擎感觉太多,另一种选择是采用Kubernetes,并使用包含应用程序的pod的集群

参考资料:

    • 对于运行长达一小时的任务来说,可能是一个好的简单的选择。它也支持计划任务和基于事件的任务,因此,例如,您可以在将资产上传到S3上后处理资产,或者使用cron每天运行资产

      更多文档

      如果您希望更复杂地处理批处理,您可以使用,但根据我的经验,这种方法需要更多的编排工作(并提供更高的灵活性)

      关于如何使用Fargate运行长时间运行的任务

      对于运行一小时的任务来说,可能是一个好的、简单的选择。它也支持计划任务和基于事件的任务,因此,例如,您可以在将资产上传到S3上后处理资产,或者使用cron每天运行资产

      更多文档

      如果您希望更复杂地处理批处理,您可以使用,但根据我的经验,这种方法需要更多的编排工作(并提供更高的灵活性)


      关于如何使用Fargate运行长时间运行的任务

      你能解释一下为什么微服务不适合长时间运行的脚本吗?好问题。我去了维基百科。。。甚至定义都说这个定义很模糊。。。然而,有些品质。。。“细粒度”,“小尺寸”。。。但这些本身就可以解释这是否包括执行时间的维度。我相信