如何从用Java编写的AWS Lambda函数中读取S3文件?

我编写了一个AWS Lambda函数,其目标是在调用时 – 它读取文件的内容,例如x.db,从中获取一个特定的值并返回给调用者。但是这个x.db文件不时变化。 所以我想将这个x.db文件上传到S3并从AWS Lambda函数读取它就像读取文件一样。

File xFile = new File("S3 file in x.db"); 

如何从用Java编写的AWS Lambda函数中读取这样的x.db S3文件?

使用Java S3 SDK。 如果您将名为x.db的文件上传到S3存储桶mybucket ,它将如下所示:

 import com.amazonaws.services.s3.*; import com.amazonaws.services.s3.model.*; ... AmazonS3 client = new AmazonS3Client(); S3Object xFile = client.getObject("mybucket", "x.db"); InputStream contents = xFile.getObjectContent(); 

此外,您应确保已分配给lambda函数的角色可以访问S3存储桶。 应用这样的政策:

 "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "s3:*" ], "Resource": [ "arn:aws:s3:::mybucket", "arn:aws:s3:::mybucket/*" ] }]