web-dev-qa-db-ja.com

AWS Lambda TooManyRequestsException:レート超過

アマゾンウェブサービス(AWS)Lambda関数を実行しようとすると(何度も)、次のエラーが表示されました。

AWS Lambda TooManyRequestsException: Rate Exceeded

これをどのように解決しますか?

18
nelsonic

Michaelによって指摘されているように、これはドキュメントに達したときに表示されるエラーメッセージです default "safety "limit of 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サポートからの応答を得るにはwhileかかる場合があるため、テストをロードするのが最善です開発/ステージング中のアプリと同時呼び出しの増加beforeへのリクエストアプリを起動します!

私たちの場合、最初のサポートリクエストから45時間がかかり、呼び出し制限が増加しました。 aws-lambda-limits-increase-requestaws-lambda-limits-request-sorted

AWSサポートのスタッフは素敵です。年齢ほぼ2日間!) 、公開が公開されていたら致命的でした。

26
nelsonic

予約の同時実行性を100未満に設定すると、この問題が発生しました。また、aws-sdk一度に100を超えるリクエストを送信します。

実際、予約済みの同時実行性が比較的低い場合、同時実行性設定に対する同時実行性リクエスト(たとえば、同時実行性が20のときに21リクエストを送信)はTooManyRequestsExceptionをスローします。私のアカウントの問題なのか、@ nelsonicと同じように、デフォルトの制限なのかわかりません。

しかし、同時実行数を100以上に増やした場合、うまくいかなくても増加し続け、問題が解決します。これがお役に立てば幸いです。

2
James