当在AWS Lambda中使用ListObjectV2操作时遇到访问被拒绝错误,可能是由于Lambda函数的执行角色没有足够的权限来执行该操作。下面是解决此问题的步骤和示例代码:
确保Lambda函数的执行角色具有适当的权限。在AWS控制台中,导航到IAM(Identity and Access Management)服务,找到您的执行角色,并确保它具有对S3的ListObjectsV2操作的权限。
您可以为执行角色添加以下策略,以授予对S3的ListObjectsV2操作的权限。请替换
为您要访问的S3存储桶名称。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:ListBucket",
"s3:ListBucketVersions"
],
"Resource": [
"arn:aws:s3:::",
"arn:aws:s3:::/*"
]
}
]
}
const AWS = require('aws-sdk');
const s3 = new AWS.S3();
exports.handler = async (event) => {
const params = {
Bucket: ''
};
try {
const response = await s3.listObjectsV2(params).promise();
console.log(response);
return response;
} catch (error) {
console.log(error);
throw error;
}
};
在上面的示例中,请确保将
替换为您要访问的S3存储桶的名称。
请注意,这只是一个示例代码,您可能需要根据自己的需求进行适当的修改。