2
我试图从用Java编写的AWS Lambda函数列出S3存储桶上的密钥。在本地运行代码可以正常工作(使用硬编码凭据)。从java访问s3 aws lambda
当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访问挂起没有错误?什么权限配置错误?
运行期λ与事的NodeJS相媲美的作品
你怎么知道它挂着?您为什么在不需要任何信息时对凭证进行硬编码 - 只需依靠假定的Lambda执行角色。 – jarmod
如果尝试了假定的Lambda执行角色(并且稍后给出了该角色的管理权限,以防万一)。记录在listObjects上方,记录在listObjects未到达之后。执行本地listObjects需要大约一秒钟的时间。 – user85155
您的Lambda函数超时是什么?默认值是3秒。此外,CloudWatch日志是否显示您的Lambda功能超时? – jarmod