Время загрузки AWS Lambda в S3 истекло - PullRequest
0 голосов
/ 24 сентября 2019

Я довольно новичок в AWS Lambda и столкнулся с проблемой.Я занимаюсь разработкой в ​​Node и загружаю файл JSON (довольно большие по 12-25 МБ) из моего S3, выполняю некоторую обработку и пытаюсь загрузить результат в виде JSON обратно в S3.

Я следовал этому уроку: https://docs.aws.amazon.com/lambda/latest/dg/with-s3-example.html, который по сути делает то же самое.

Моя проблема заключается в том, что моя лямбда-тайм-аут всегда вызывает при вызове JSON.stringify объект, который я получаю в результате обработки данных, и, следовательно, файл никогда не загружается обратно в S3.Результатом моей обработки также является довольно большой объект, но он все еще меньше в качестве входных данных (около 10 МБ).
Я уже пытался использовать библиотеку fast-json-stringify, но в итоге получил тот же результат.

Кто-нибудь знает, есть ли другой быстрый способ конвертировать объект в строку, буфер или поток?

ОБНОВЛЕНИЕ

Вот мой код:

async.waterfall(
  [
    (next) => {
      s3.getObject({
        Bucket: bucketName,
        Key: keyDownload
      }, next);
    },
    (response, next) => {
      next(null, processData(JSON.parse(response.Body)));
    },
    (data, next) => {
      s3.putObject({
        Bucket: bucketName,
        Key: keyUpload,
        Body: JSON.stringify(data)
      }, next);
    }
  ], 
  (err) => {
    if (err) {
      callback(err);
    } else {
      callback();
    }
  }
);

Ответы [ 2 ]

0 голосов
/ 24 сентября 2019
  • Просто случайная мысль после просмотра примера, которому вы следуете.

  • , если вы используете aws cli для создания лямбда-функции, просто интересно, что это такоезначение - timeout , которое вы дали.В примере написано --timeout 10, что составляет 10 секунд, что является определенно небольшим промежутком времени.

  • Вы также можете проверить / изменить его на консоли aws и попробовать увеличить его до 10 минут.т.е. 600 секунд (это только для проверки, если это проблема или нет, позже вы можете перейти к некоторому соответствующему значению после оценки).

  • Время ожидания является необязательным значением при создании с помощьюау клиТаким образом, значение по умолчанию составляет 3 секунды.Максимально допустимое значение составляет 900 секунд, т. Е. 15 минут.

  • Определенно будет полезна загрузка из нескольких частей.

0 голосов
/ 24 сентября 2019

Вы пробовали загрузку из нескольких частей S3, я бы посоветовал вам это посмотреть -

https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...