我似乎正在遇到权限问题,找不到任何SO答案来解决此问题。
我的Lambda函数很简单(请注意-我正在使用Babel进行转换):
import AWS from "aws-sdk";
import { success, failure} from "./libs/response-lib";
export async function main(event, context, callback) {
const s3 = new AWS.S3();
const params = {
Bucket: "mybucket",
};
try {
const result = await s3.listObjectsV2(params);
return success(result);
}
catch(e) {
return failure({ status: false, message: e })
}
}
当我使用Serverless进行部署并击中端点时,我得到了500错误。
我已将此文件包含在我的
serverless.yml
文件中,并且已关闭了S3存储桶本身的“阻止所有公共访问”,但似乎我还想念更多吗?iamRoleStatements:
- Effect: Allow
Action:
- s3:ListBucket
Resource: "arn:aws:s3:::mybucket"
最佳答案
好的,所以AWS的S3方法是同步的,所以我需要让它返回一个promise:
.
.
.
const result = await s3.listObjectsV2(params).promise();
.
.
.