Подтвердить что ты не робот

AWS Lambda TooManyRequestsException: Превышение скорости

При попытке выполнить Lambda-функцию Amazon Web Services (AWS) (много раз) мы увидели ошибку:

AWS Lambda TooManyRequestsException: Rate Exceeded

Как мы это разрешим?

4b9b3361

Ответ 1

Как отметил Майкл, это сообщение об ошибке, которое вы увидите, когда вы достигнете документированного по умолчанию " безопасности" limit 100 одновременных вызовов:

"AWS Lambda имеет стандартный дроссель безопасности 100 одновременных исполнений для каждой учетной записи для каждого региона. Если вы хотите отправить запрос на увеличение дросселя из 100 одновременных исполнений, вы может посетить наш Центр поддержки...

Решение заключалось в том, чтобы открыть билет поддержки, содержащий следующую информацию:

Limit increase request 1 
Service: Lambda 
Region: EU (Ireland) 
Limit name: concurrent requests (average duration * average TPS) 
New limit value: 2000

И затем в теле билета/запроса попытайтесь оценить свой шаблон использования:

Expected average requests per second: 200 
Expected peak requests per second: 2000 
Expected function duration: 2 seconds 
Function memory size: 1000mb 
Invocation Type: Request-response 
Event Source: Api Gateway & Lambda<->Lambda

Может потребоваться некоторое время, чтобы получить ответ от поддержки AWS, если вы не платите за премиум-поддержку, поэтому лучше всего загрузить тестовое приложение во время разработки/создания и запросить увеличить одновременные вызовы до вы запустите свое приложение!

В нашем случае из первоначального запроса поддержки потребовалось 45 часов, чтобы увеличить лимит вызова. aws-lambda-limits-increase-requestaws-lambda-limits-request-sorted

Люди, поддерживающие AWS, прекрасны, они просто чувствовали, что чувствуют себя как века (почти два дня!), чтобы повысить уровень обслуживания, что было бы фатальным, если бы наш запуск был публичным!

Ответ 2

У меня возникла эта проблема, когда я установил Резервный параллелизм ниже 100. И использовал aws-sdk для отправки более 100 запросов одновременно.

Фактически, когда зарезервированный параллелизм относительно низок, любой запрос на параллелизм по вашей настройке параллелизма (например, отправка 21 запроса, когда параллелизм равен 20) выбросит исключение TooManyRequestsException. Я не уверен, что это проблема моей учетной записи или просто @nelsonic memtioned: ограничение по умолчанию.

Но когда я увеличиваю мой параллелизм не менее чем на 100, если не работает, продолжаю увеличиваться, тогда проблема решается. Надеюсь, это поможет.