当前场景:我们正在使用一些java代码处理40M记录,并将其作为csv文件上传到s3存储桶。未来:我们希望将此代码移动到 AWS,为此,我们希望有一个 python 脚本来处理记录并将其作为 csv 文件加载到 aws-s3 存储桶中。你能建议最好的方法,可以触发脚本和处理数据吗?我们希望避免使用 EC2 并在服务器中托管 python 脚本。我们希望将其作为无服务器服务。我的方法:我想过使用 AWS-Glue 执行此操作,使用触发器(基于自动/基于时间)启动作业,并将我的代码放在作业内的脚本中。这是一个好方法吗?
2 回答
芜湖不芜
TA贡献1796条经验 获得超7个赞
您可以使用AWS Fargate,考虑到Lambda的最大执行时间为15分钟,它可以与Lambda集成,因此您应该使用Fargate。
更多详情 https://serverless.com/blog/serverless-application-for-long-running-process-fargate-lambda/
此外,您还可以使用 AWS 事件规则来安排它
外观解决方案始终存在。但是有好的做法和坏的做法。
如果我告诉你,你可以只用AWS lambda和AWS EventRule来做到这一点,而SQS听起来会如何。有趣?
简而言之,你可以做到这一点。跟踪 lambda 中消耗的时间,当它达到 14 分钟时,向 SQS 发送一条消息,指示您已处理的行号,将处理的文件上传到 s3,然后退出。使用该 SQS 再次触发 lambda,并将一些消息保留期定为 30 秒,以再次调用相同的 lambda 并从该行号开始。完成所有处理后,您将在 S3 中拥有多个已处理的文件,请使用另一个 lambda 和 SQS 将它们合并为一个。这不是一个坏的做法,但在我看来不太好,快乐?
慕田峪9158850
TA贡献1794条经验 获得超7个赞
您可以使用 Cloudwatch 事件规则定期调用您定义的计划,并将 lambda 函数作为其目标。这是 AWS 文档中有关如何执行此操作的教程。
添加回答
举报
0/150
提交
取消