2

我正在尝试从用 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 运行类似的东西是可行的

4

1 回答 1

2

解决方案是为 Lambda 提供更多内存以供使用。对于大多数运行 Lambda 报告,大约 111 MB 用于执行简单的 S3listObjects命令。所以 128 MB 是不够的,512 MB 可以正常工作。

于 2015-10-14T21:45:42.930 回答