AWS Lambda: сбой вызова действия API вызова с этим сообщением: ошибка сети - PullRequest
0 голосов
/ 07 ноября 2018

Я создал лямбду, которая перебирает все файлы в данной корзине S3 и удаляет файлы в корзине S3. S3 Bucket имеет около 100K файлов, и я выбираю и удаляю около 60K файлов. Я установил для тайм-аута лямбды максимальное значение (15 минут). Лямбда последовательно возвращает «сетевую ошибку» через несколько минут, хотя кажется, что она работает в фоновом режиме в течение некоторого времени, даже после того, как ошибка была возвращена. Как можно обойти это?

1 Ответ

0 голосов
/ 07 ноября 2018

S3 имеет Ограничение скорости , которое ограничивает количество операций чтения и записи, которые вы можете выполнять в секунду.

Amazon S3 автоматически масштабируется до высоких уровней запросов. Например, Ваше приложение может достичь не менее 3500 PUT / POST / DELETE и 5500 GET запросов в секунду на префикс в сегменте. Нет никаких ограничений количество префиксов в ведре. Это просто, чтобы увеличить ваше чтение или написать производительность в геометрической прогрессии. Например, если вы создаете 10 префиксы в корзине Amazon S3 для распараллеливания операций чтения можно масштабировать ваша скорость чтения до 55 000 запросов на чтение в секунду.

Если все эти объекты имеют одинаковые 8 символов в своем ключе (путь к файлу), то они имеют одинаковый префикс и ограничены 3500 УДАЛЕНИЯМИ и 5500 УСТАНОВКАМИ. Если это так, и вам нужно делать это регулярно, подумайте об изменении префикса, чтобы первые 8 символов ключа были разными, заставляя объекты распределяться по большему количеству узлов. В одном из моих предыдущих ответов более подробно об этом говорится.

В качестве альтернативы вы можете использовать операцию массовое удаление для удаления до 1000 объектов за операцию.

Задержка, которую вы видите, вероятно, вызвана возможной последовательностью , когда S3 синхронизируется между AZ в регионе.

Amazon S3 предлагает возможную согласованность для записи PUTS и DELETES во всех регионах.

...