アマゾンウェブサービス(AWS)Lambda関数を実行しようとすると(何度も)、次のエラーが表示されました。
AWS Lambda TooManyRequestsException: Rate Exceeded
これをどのように解決しますか?
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サポートのスタッフは素敵です。年齢(ほぼ2日間!) 、公開が公開されていたら致命的でした。
予約の同時実行性を100未満に設定すると、この問題が発生しました。また、aws-sdk
一度に100を超えるリクエストを送信します。
実際、予約済みの同時実行性が比較的低い場合、同時実行性設定に対する同時実行性リクエスト(たとえば、同時実行性が20のときに21リクエストを送信)はTooManyRequestsException
をスローします。私のアカウントの問題なのか、@ nelsonicと同じように、デフォルトの制限なのかわかりません。
しかし、同時実行数を100以上に増やした場合、うまくいかなくても増加し続け、問題が解決します。これがお役に立てば幸いです。