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