Quotenbegrenzung für eingehende REST-APIs

  • Freigeben Version: Xanadu
  • Aktualisiert 1. August 2024
  • 2 Minuten Lesedauer
  • Um übermäßige eingehende REST-API-Anforderungen zu vermeiden, legen Sie Regeln fest, die die Anzahl der pro Stunde verarbeiteten eingehenden REST-API-Anforderungen begrenzen. Sie können Regeln erstellen, um Anforderungen für bestimmte Benutzer, Benutzer mit bestimmten Rollen oder für alle Benutzer einzuschränken.

    Hinweis:
    Wenn Anforderungen eine Instanz erreichen, verwaltet jeder Knoten eine Ratenbeschränkung pro Benutzer. Alle 30 Sekunden wird die Zählung in die Datenbank übernommen. Eine Quotengrenzregel kann daher bis zu 30 Sekunden nicht wirksam sein.

    Quotenbegrenzungspriorität

    Wenn für eine eingehende REST-API-Anforderung mehrere Quotengrenzregeln für dieselbe Ressource gelten, wird die Quotenbegrenzungspriorität wie folgt erzwungen:
    • Regeln, die für Einzelbenutzer festgelegt sind, überschreiben Regeln für Alle Benutzer und Regeln für Benutzer mit Rolle.
    • Regeln, die für Benutzer mit Rolle festgelegt sind, überschreiben Regeln für Alle Benutzer.
    In diesem Beispiel gibt es vier Quotengrenzregeln für dieselbe REST-API-Ressource: GET /now/v2/table/incident:
    Quotenbegrenzungsregeln
    Diese Quotengrenzregeln werden in der folgenden Reihenfolge angewendet:
    1. Incidents durch Benutzer begrenzen gilt für ITIL-Benutzer, die bis zu 10 Anforderungen pro Stunde einreichen können.
    2. Incidents durch Import-Administratorrolle begrenzen gilt für jeden Benutzer mit der Rolle „import_admin“. Jeder Benutzer mit der Rolle „import_admin“ kann bis zu drei Anforderungen pro Stunde einreichen.
    3. Incidents durch itil-Rolle begrenzen gilt für jeden Benutzer mit der Rolle „itil“. Jeder Benutzer mit der Rolle „itil“ kann bis zu fünf Anforderungen pro Stunde einreichen.
    4. Incidents begrenzen gilt für alle Benutzer. Jeder Benutzer kann bis zu zwei Anforderungen pro Stunde einreichen.

    Wenn der ITIL-Benutzer die Anforderung GET /now/v2/table/incident stellt, erfüllt die Anforderung die Kriterien für drei Regeln: Incidents begrenzen, Incidents durch itil-Rolle begrenzen und Incidents durch Benutzer begrenzen. Nur die Regel Incidents durch Benutzer begrenzen wird angewendet, denn sie hat Vorrang vor den anderen Regeln. Dadurch kann der ITIL-Benutzer maximal 10 Anforderungen pro Stunde einreichen.

    Wenn ein Benutzer über zwei oder mehr Rollen verfügt, die die Kriterien für mehrere Quotengrenzregeln für eine REST-API-Ressource erfüllen, gilt die Regel, die die niedrigste Anzahl von Anforderungen zulässt, für die Benutzeranforderungen für die Ressource. Nehmen Sie für die Beispielregeln in der obigen Abbildung an, dass der Benutzer „Abel Tuter“ sowohl die Rolle „import_admin“ als auch die Rolle „itil“ hat. Wenn Abel Tuter eine Anforderung sendet, erfüllt sie die Kriterien für die Regel Incidents nach Administratorrollebegrenzen und die Regel Incidents nach ITIL-Rolle begrenzen. Nur die Regel Incidents durch Administratorrolle begrenzen wird angewendet, weil sie die geringste Anzahl von Anforderungen zulässt. Daher kann Abel Tuter maximal drei Anforderungen pro Stunde übermitteln.

    REST-API-Antwortkopfzeilen

    Sie können eingehende REST API-Anforderungen mit Verwenden Sie den REST-API-Explorer oder einem HTTP-Client wie Postman generieren. Wenn für die Anforderung eine Quotengrenzregel gilt, enthalten mehrere HTTP-Antwortkopfzeilen Informationen zur Quotenbegrenzung:
    • X-RateLimit-Grenze zeigt die Anzahl der pro Stunde zulässigen Anforderungen an.
    • X-RateLimit-Zurücksetzen zeigt die Unix-Zeit bis zum nächsten geplanten Reset an.
    • X-RateLimit-Rule zeigt die sys_id der Quotengrenzregel an, die erzwungen wird.

      Quotengrenze-Antwortkopfzeilen

    Wenn eine Anforderung abgelehnt wird, weil sie die Quotengrenze überschreitet, gibt das System eine Antwortkopfzeile Wiederholen nach zusätzlich zu den Antwortkopfzeilen zur Quotenbegrenzung zurück. Die Antwortkopfzeile Wiederholen nach zeigt die Sekunden an, nach denen Sie die Anforderung wiederholen können, um das Überschreiten der Quotenbegrenzung zu vermeiden. Die folgende Fehlerantwort wird zurückgegeben:
    {
        "error": {
            "message": "Rate limit exceeded",
            "detail": "Rate limit of 10 requests per hour for Table API exceeded"
        },
        "status": "failure"
    }

    Der Status einer abgelehnten Anforderung lautet 429 Zu viele Anforderungen.

    REST-Antwortstatus 429 Zu viele Anforderungen