受信 REST API レート制限
過剰な受信 REST API 要求を防ぐために、1 時間あたりに処理される受信 REST API 要求の数を制限するルールを設定します。特定のユーザー、特定のロールを持つユーザー、またはすべてのユーザーに対する要求を制限するルールを作成できます。
レート制限ルールは、レート制限ルール [sys_rate_limit_rules] テーブルで作成されます。
レート制限の優先度
- 単一ユーザー用に設定されたルールは、すべてのユーザーのルールとロールを持つユーザーのルールを上書きします。
- ユーザーに設定されたルールと、すべてのユーザーのロール上書きルールがあります。
GET /now/v2/table/incident に 4 つのレート制限ルールがあります。- ユーザーによるインシデントの制限は 、1 時間あたり最大 200 件の要求を送信できる ITIL ユーザーに適用されます。
- インポートアドミニ ストレーターは、import_admin ロールを持つすべてのユーザーに適用されます。import_adminロールを持つ各ユーザーは、1 時間あたり最大 500 件の要求を送信できます。
- itil によるインシデントの制限 は、itil ロールを持つすべてのユーザーに適用されます。itil ロールを持つ各ユーザーは、1 時間あたり最大 100 件の要求を送信できます。
- インシデントの制限は すべてのユーザーに適用されます。各ユーザーは、1 時間あたり最大 100 件の要求を送信できます。
ITIL ユーザーが GET /now/v2/table/incident を要求すると、その要求は [ インシデントを制限]、[ itil でインシデントを制限]、および [ ユーザーでインシデントを制限] の 3 つのルールの基準と一致します。他のルールよりも優先されるため、[ ユーザー別にインシデントを制限 ] ルールのみが適用されます。その結果、ITIL ユーザーは 1 時間あたり最大 200 件の要求を送信できます。
ユーザーが REST API リソースの複数のレート制限ルールの基準に一致する 2 つ以上のロールを持っている場合、最小数の要求を許可するルールがリソースに対するユーザーの要求に適用されます。上の図のルール例では、ユーザー Abel Tuter が import_admin ロールと itil ロールの両方を持っていると仮定します。Abel Tuter が要求を送信すると、[ アドミンによるインシデントの制限 ] ルールと [itil によるインシデントの制限 ] ルールの両方の基準を満たします。許可される要求の数が最も少ないため、[ itil でインシデントを制限する] ルールのみが適用されます。その結果、Abel Tuter は 1 時間あたり最大 100 件の要求を送信できます。
REST API 応答ヘッダー
- X-RateLimit-Limit は 、1 時間あたりに許可される要求の数を表示します。
- X-RateLimit-Reset は、レート制限ウィンドウの次回スケジュールされたリセットの UNIX タイムスタンプを表示します。
- X-RateLimit-Rule は、適用されているレート制限ルール [sys_rate_limit_rules] のsys_idを表示します。
{
"error": {
"message": "Rate limit exceeded",
"detail": "Rate limit of 100 requests per hour for Table API exceeded"
},
"status": "failure"
}拒否された要求のステータスコードは「429 要求が多すぎます」です。