Список объектов в корзине AWS S3 (развернут с использованием Serverless) - PullRequest
2 голосов
/ 16 мая 2019

Я, кажется, получаю проблемы с разрешениями и не могу найти какой-либо SO-ответ для решения этой проблемы.

Моя лямбда-функция проста (примечание - я использую 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"

1 Ответ

0 голосов
/ 16 мая 2019

Хорошо, методы AWS S3 являются синхронными, поэтому мне нужно, чтобы он возвращал обещание:

.
.
.
const result = await s3.listObjectsV2(params).promise();
.
.
.
...