Python Amazon Lambda是否适合每天并行计算数百份报告?
我目前的处境: 我目前有一个Python脚本,它通过HTTP端点获取数据,每天计算并生成成百上千的报告。目前,它在AWS EC2实例上运行,在该实例中,队列用于在四个线程之间拆分它需要生成的报告。脚本一次四个,获取数据,计算每个报告,并将其保存到PostgreSQL数据库中 问题: 随着项目的扩展,我的脚本将无法足够快地计算,也无法使用当前方法在一天内生成所需的所有报告 寻找解决方案: 我偶然发现了Amazon Lambda,但我还没有发现有人将其用于类似于我的用例。我的计划是将需要生成的每个报告上传/放入自己的S3存储桶中,然后在创建存储桶时触发Lambda函数。Lambda函数将执行所有数据获取(从HTTP端点)和所有计算,并将其保存到我的PostgreSQL Amazon RDS中的一行。从理论上讲,这将使所有内容都是并行的,并且消除了等待释放资源的队列的需要 基本上,我正在寻找一个解决方案,以确保我的脚本能够每天运行并完成每一天,而不会过度运行到第二天 我的问题: Amazon Lambda是否适合这样的产品 使用AmazonLambda(每天创建成百上千个s3存储桶)执行类似操作是否成本高昂 有更好的选择吗 非常感谢您提供的任何帮助、建议、见解或提示。谢谢 Amazon Lambda是否适合这样的产品Python Amazon Lambda是否适合每天并行计算数百份报告?,python,amazon-web-services,amazon-s3,amazon-ec2,aws-lambda,Python,Amazon Web Services,Amazon S3,Amazon Ec2,Aws Lambda,我目前的处境: 我目前有一个Python脚本,它通过HTTP端点获取数据,每天计算并生成成百上千的报告。目前,它在AWS EC2实例上运行,在该实例中,队列用于在四个线程之间拆分它需要生成的报告。脚本一次四个,获取数据,计算每个报告,并将其保存到PostgreSQL数据库中 问题: 随着项目的扩展,我的脚本将无法足够快地计算,也无法使用当前方法在一天内生成所需的所有报告 寻找解决方案: 我偶然发现了Amazon Lambda,但我还没有发现有人将其用于类似于我的用例。我的计划是将需要生成的每个报
- 您的跑步时间不能超过5分钟
- 部署(特别是当您有许多外部库时)有点笨重
- 您几乎无法控制AWS如何运行代码(可能会出现延迟或暂停,日志很难获取)
如果您的报告几乎是不断生成的,那么您最好还是自己继续运行服务器。如果您偶尔会获得非常大的批量,那么最好是现场竞标实例或寻找其他云服务提供商。如果你一整天都有不规则的爆发,那么Lambda似乎非常适合你。@Nathaniel已经回答了大部分问题,但我想补充一点“其他选择”: 如果从源代码的角度来看,您可以并行运行比四个报告更多的报告(您只是因为CPU利用率而将它们限制为四个,而不是因为HTTP服务无法处理更高的负载),那么我肯定可以说您可以做更多的事情:
提供的原型实现缺少生产中所需的几个明显特性,因此只能用于演示。另外,请看一看作者在评论中链接的出色的“重新发明”演示文稿。还有1.5MB的内存限制,必须提前分配,分配的越多,无论您是否需要,成本就越高。我知道我的一些生成xlsx文件的报告实际上需要更多的内存来渲染。哦+1对于spot实例——这似乎是一个理想的用例。谢谢,这是我一直在寻找的洞察力!我的报告几乎一直在生成,所以我认为您是对的,我最好还是自己继续运行服务器。我想