从 java aws lambda 访问 s3
Accessing s3 from java aws lambda
我正在尝试从用 Java 编写的 AWS Lambda 函数列出 S3 存储桶上的键。 运行 代码在本地工作正常(使用硬编码凭据)。
当运行 Lambda 中相同的Java 代码时,它挂在listObjects
AmazonS3 s3client = new AmazonS3Client(new BasicAWSCredentials("XXXXXXXXXXXx",
"XXXXXXXXXXZZZZZZZZZZz"));
ListObjectsRequest listObjectsRequest = new ListObjectsRequest()
.withBucketName(bucketName)
.withMaxKeys(10);
ObjectListing objectListing;
do {
objectListing = s3client.listObjects(listObjectsRequest);
硬编码的用户凭证和 Lambda 执行角色都具有对 s3 的完全访问权限。
为什么S3访问没有报错就挂了?什么权限配置错了?
运行 在 Lambda 中与 NodeJS 相媲美的东西
解决方案是为 Lambda 提供更多内存。对于大多数运行,Lambda 报告大约 111 MB 用于执行简单的 S3 listObjects
命令。所以 128 MB 不够用,512MB 就可以了。
我正在尝试从用 Java 编写的 AWS Lambda 函数列出 S3 存储桶上的键。 运行 代码在本地工作正常(使用硬编码凭据)。
当运行 Lambda 中相同的Java 代码时,它挂在listObjects
AmazonS3 s3client = new AmazonS3Client(new BasicAWSCredentials("XXXXXXXXXXXx",
"XXXXXXXXXXZZZZZZZZZZz"));
ListObjectsRequest listObjectsRequest = new ListObjectsRequest()
.withBucketName(bucketName)
.withMaxKeys(10);
ObjectListing objectListing;
do {
objectListing = s3client.listObjects(listObjectsRequest);
硬编码的用户凭证和 Lambda 执行角色都具有对 s3 的完全访问权限。
为什么S3访问没有报错就挂了?什么权限配置错了?
运行 在 Lambda 中与 NodeJS 相媲美的东西
解决方案是为 Lambda 提供更多内存。对于大多数运行,Lambda 报告大约 111 MB 用于执行简单的 S3 listObjects
命令。所以 128 MB 不够用,512MB 就可以了。