使用Java从EC2中的S3读取CSV文件

时间:2019-06-11 13:11:19

标签: java amazon-web-services amazon-s3 amazon-ec2 amazon-dynamodb

在当前的实现中,我有Java代码,该代码实际上读取2个或更多CSV文件,根据业务逻辑合并数据并将数据保存到新的CSV文件中。通过执行目录监视在TIBCO中触发该Java jar文件,即,当放置新文件集时,将触发该Java代码。 一切正常,工作良好,但由于AWS云的原因,要求是托管EC2实例并执行此Java代码,但不使用TIBCO来触发构建一些Java(如独立/后台进程)应用程序。 由于我不是来自Java背景,因此我不确定如何实现此独立/后台过程,该过程可以监视S3文件夹并触发该过程。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

听起来您的要求是:

  • 文件已上传到Amazon S3
  • 这应该触发一些代码来处理文件
  • 然后(大概)将结果文件存储回Amazon S3

做到这一点的最好方法是:

  • 在存储桶上配置 Amazon S3事件以在文件上传时触发AWS Lambda函数
  • Lambda函数将随新对象的桶名称和键(文件名)一起提供
  • Lambda函数然后可以运行您自己的代码来处理文件,包括从Amazon S3下载/上传到Amazon S3

此方法的优点是您不需要需要Amazon EC2实例。相反,Lambda函数将作为无服务器函数触发,执行和退出。

Lambda函数可以用多种语言编写,例如Java,Python,.Net,Go等。

浏览文档和示例。

请参阅:Using AWS Lambda with Amazon S3 - AWS Lambda

一件事:我不确定您的代码需要做什么,但是会为每个上传的文件 触发Lambda函数。因此,如果目标是将多个文件合并为一个文件,则需要确定触发作业开始的原因。这可能涉及忽略某些文件,直到出现正确的文件为止,从而触发该过程。