Время ожидания Lambda при общении с S3

Я пытаюсь просто перечислить все файлы в ведро S3, используя Lambda

Код выглядит следующим образом:

var AWS = require('aws-sdk');
var s3 = new AWS.S3();

exports.handler = (event, context, callback) => {

   s3.listObjectsV2({
       Bucket: "bucketname",
   }, function(err, data) {
       console.log("DONE : " + err + " : " + data); 

       callback(null, 'Hello from Lambda');
    });
};

Используя вышеизложенное, я никогда не получаю "DONE" вообще. В журнале не отображается какая-либо информация, кроме того, что она была отключена.

Есть ли какие-либо проблемы, которые я могу сделать здесь? Я бы подумал, что по крайней мере ошибка будет показана в разделе "DONE".

Ответ 1

Спасибо Майклу выше. Проблема заключалась в том, что он работал внутри VPC. Если я изменю его на No VPC, он будет работать правильно. Ваше решение может отличаться, если вы требуете его для запуска в VPC.

Ответ 2

Если вы используете свой код внутри VPC, убедитесь, что подсеть VPC и его таблица таблицы маршрутизации должны быть правильными (маршрутизация: Dest = 0.0.0.0/0 и target = igw-xxxx). Также должна быть добавлена маршрутизация конечной точки VPC для связи с s3 через конечную точку.

Ответ 3

В моем случае я выбрал 2 разные подсети, одна из которых является частной, а другая общедоступной. Так что иногда работало, а иногда нет. Я изменил обе подсети на частные (с NAT-шлюзом в маршруте), и теперь это работает без ошибки тайм-аута.