クオータとレート制限ガイド
FedEx APIは、クオータ、レート制限、しきい値の3つのスロットリングメカニズムの影響を受けます。
クオータ
トランザクションクオータは、組織が1日に送信できるAPIリクエストの最大数です。つまり、API利用者は、組織内のすべてのプロジェクトで作成されたAPIリクエストの総数を考慮する必要があります。なお、FedEx API応答で返されるデータの量に関係なく、各リクエストは等しくカウントされます。
例:組織には、1日あたり500,000件のAPIリクエストのクオータがあります。1日の最初の数時間で、この組織は500,000件のリクエストを送信し、1日のクオータに達しました。その後、一日中、エラーコード「429 – リクエストが多すぎます – 1日のトランザクションクオータを超過しました。12:00AM GMT以降に再試行してください。」が、翌日までリクエストごとに返されます。
レート制限
各プロジェクトには、10秒間に1400件のトランザクションのトランザクションレート制限があります。各10秒の時間枠内でトランザクションがこの制限を超過すると、スロットリング制限が適用されます。
最初の数秒でこの制限に達すると、その10秒のウィンドウの残りの秒で送信されたトランザクションはスロットルされます。このスロットリング期間中、「429–リクエストが多すぎます」というエラーコードが返されます。
フェデックスが最初の2秒間に1400件のリクエストを受信した場合、後続のトランザクションはその後の8秒間スロットルされ、「429 – リクエストが多すぎます – 短期間で受信したリクエストが多すぎます。しばらくしてからやり直してください」というメッセージが返されます。
10秒が経過すると、スロットル制限が解除され、別のカウンターが次の10秒間のリクエスト数の追跡を開始します。
しきい値
しきい値は、FedEx API認証プロセスの回復性を高めるために、IPアドレスレベルで適用されます。また、このメカニズムは、OAuthトークン生成サービスにのみ適用されます。しきい値には次の2種類があります。
- バーストしきい値:1秒あたり3ヒット、連続して5秒間
- 平均しきい値:1秒あたり1ヒット、連続して2分間
パブリックIPアドレスがこれらのしきい値制限のいずれかに違反すると、10分間のペナルティが課せられます。そして、この10分間の時間枠内のすべてのリクエストには「403 許可されていません」ステータスコードが返されます。
API利用者がこのペナルティ時間中にしきい値制限に違反し続けた場合、ペナルティ時間は延長されます。なお、APIユーザーは、次の10分間しきい値制限に違反しないことで、ペナルティ時間を終了することができます。
しきい値メカニズムは、ユーザーのパブリックIPアドレスに基づいています。ユーザーが1つのパブリックIPの背後に10個のVMインスタンスを設定すると、そのIPアドレスからのすべてのリクエストがしきい値の制限にカウントされます。
トラフィック管理
次の3つのメカニズムはそれぞれ、トラフィック管理の異なる側面に対処します。
クオータは組織レベルで適用されます。つまり、組織内のすべてのAPIが生成したトラフィック総計は、このトランザクションクオータの対象となります。
レート制限はプロジェクトレベルで適用されます。つまり、プロジェクト内のすべてのAPIが生成したトラフィック総計は、このレート制限の対象となります。
しきい値は、IPアドレスレベルで適用されます。
注意:フェデックスは、誤用、過剰使用、乱用を防ぐために、上記のスロットリングメカニズムのいずれかに制限を設ける場合があります。なお、フェデックスは、API利用者間の公平なアクセスを維持するため、およびフェデックスのリソースを効果的かつ効率的に割り当てるために、予告なしにクオータを変更する権利を留保します。
よくある質問
ある組織の複数のプロジェクトからのすべてのAPIトランザクションは、クオータにカウントされますか?
クオータは組織レベルで適用されます。1つの組織は複数のプロジェクトを実行することができ、各プロジェクトで一つまたは複数のAPIを利用することができます。その結果、ある組織の異なるプロジェクトのすべてのAPIが生成するトラフィック総計が、1日あたりのクオータにカウントされます。
クオータ違反とレート制限違反の両方で同じ429エラーが返された場合、発生した違反の種類を特定するにはどうすればよいですか?
エラーメッセージを読むことで違反を特定できます。
違反 | エラーメッセージ |
---|---|
クオータ | リクエストが多すぎます – 1日のトランザクションクオータを超過しました。12:00AM GMT以降に再試行してください。 |
レート制限 | 短期間で受信したリクエストが多すぎます。しばらくしてからやり直してください。 |
しきい値制限違反の解決策は?
OAuthトークンは1時間有効です。APIの利用者には、このトークンを1時間使用し、そのトークンの有効期限が切れてから新しいトークンをリクエストすることをお勧めしています。
しきい値を超過したときの例を教えてもらえますか?
監視ウィンドウは、バーストしきい値で5秒、平均しきい値で2分です。これらのウィンドウのいずれかの間に、IPアドレスがしきい値制限のいずれかに違反した場合、しきい値ペナルティが課されます。
例:IPアドレスが1秒あたり3ヒットが2秒続き、その後、ヒット率が1秒あたり3ヒットを下回った場合は、バーストしきい値に違反していません。ただし、IPアドレスが5秒間連続して1秒あたり3ヒット(例:ヒット率を維持したまま5秒間に少なくとも15ヒット)した場合、バーストしきい値に違反しています。