我有一个带有不同文件的S3存储桶。我需要读取这些文件并为文件中的每一行发布SQS消息。我无法使用S3事件,因为需要延迟处理文件-一个月后放入SQS。
我可以编写一个调度程序来执行此任务,并进行阅读和发布。但是我可以为此使用AWS吗?AWS Batch或AWS数据管道或Lambda。
我需要传递要读取和发布的数据的日期(文件名)。
编辑:要处理的数据量巨大
核心是,您需要做两件事:
枚举S3中存储桶中的所有对象,并对一个多月前上传的任何对象执行一些操作。
您可以使用Lambda或Batch来做到这一点吗?当然。可以将Lambda设置为每天触发一次,枚举文件,然后将结果发布到SQS。
你应该?没有线索。这很大程度上取决于您的规模,以及如果需要很长时间来执行此工作,您打算做什么。如果您的S3存储桶有数百个对象,那将不是问题。如果有数十亿个数据,则您的Lambda将需要能够处理被中断的问题,并继续通过上次运行中的文件进行分页。
或者,您可以使用S3事件触发一个简单的Lambda,该Lambda向数据库添加一行。然后,再次,某些Lambda可以在cron作业上运行,该作业要求数据库提供旧行,然后将其发布为SQS,以供其他人使用。也许这会稍微清洁一点,并且可以处理放大到相当大的存储桶大小。
或者,如果您每天只需要对几十个文件做一些简单的工作,则可以在文件t2.micro上进行文件的分页,决定要做什么以及处理所有旧文件。
这完全取决于您的工作量和需求。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句