Amazon API Gateway を使用して API にリクエストを送信すると、"429 Too Many Requests" または "Limited Exceeded" というエラーが発生します。
簡単な説明
クォータのスロットリング制限を超えると、"429 Too Many Requests" または "Limited Exceeded" というエラー応答が発生します。API Gateway には、リージョンごとにアカウントレベルのクォータがあります。スロットリングに関連する設定の詳細については、「API Gateway におけるスロットリング制限設定の適用」を参照してください。
解決策
まず、手順どおりに Amazon CloudWatch Logs を有効化し、API Gateway をトラブルシューティングしたことを確認します。API へのリクエストでエラーが発生した場合にのみイベントログを生成するには、ERROR を選択する必要があります。次に、CloudWatch コンソールを使用してログに記録された API リクエストと応答を確認します。
"429 Too Many Requests" エラー
使用プランの API ステージに設定したクライアントごとまたはメソッドごとのスロットリング制限に対する、レートまたはバースト制限を確認します。レートまたはバースト制限を超えると、CloudWatch イベントはスロットル制限を超えたことをログに記録します。エラーは次のような形式です。
(f277a0b4-2bcd-41b3-8e43-4de770663ffb) API Key
**********************************
F0yrv6 exceeded throttle limit for API
Stage rohkz08x02/dev: Key throttle limit exceeded for Usage Plan ID nnpegc, RestApi rohkz08x02, Stage dev, Resource f646q2, HttpMethod GET. Limit: 5.00 Burst: 10
このエラーを解決するには、ジッター付きエクスポネンシャルバックオフの標準リトライモードを使用してから、API リクエストを再送信します。詳細については、「リトライの動作」を参照してください。
"Limit Exceeded" エラー
このエラーが発生した場合は、API Gateway 使用プランのクォータ制限を超えています。CloudWatch が実行し、クォータ制限の超過が記録されます。エラーは次のような形式です。
(7b819c41-e0a0-433a-883e-bc461fd70fd6) API Key
**********************************
F0yrv6 exceeded quota limit for API
Stage rohkz08x02/dev: Key quota exhausted for Usage Plan ID nnpegc. Q
Limit: 500 Period: DAY
クォータを増やすことで、このエラーを解決できます。
関連情報
"Rate exceeded" エラーと 429 "TooManyRequestsException" エラーが発生する、Lambda 関数のスロットリングをトラブルシューティングする方法を教えてください
CloudWatch ログで API Gateway REST API エラーを特定する方法を教えてください