API-Nutzung deckeln

Mit API-spezifischen Nutzungskontingenten können Sie die Anzahl der Anfragen pro Tag, pro Minute oder pro Minute und Nutzer begrenzen, um den Diensttraffic zu steuern und die Limits des kostenlosen Kontingents einzuhalten. Da diese Obergrenzen das individuelle API-Volumen und nicht die Gesamtausgaben regeln, sollten Sie Budgets und Budgetbenachrichtigungen verwenden, um unerwartete Kosten für ein gesamtes Projekt oder Rechnungskonto zu vermeiden. Die Durchsetzung von Kontingenten erfolgt mit einer gewissen Latenz, nachdem ein Schwellenwert überschritten wurde. Planen Sie daher einen Sicherheitsabstand ein, wenn Sie Obergrenzen zur Verwaltung der Abrechnungskosten konfigurieren.

Limits für die Anzahl der Anfragen ansehen und ändern

Sie können für alle Anfragen an eine abrechnungsfähige API Grenzen ein Limit angeben. Die meisten APIs legen Standardlimits fest. Sie können dieses Limit jedoch bis zu einem von Google festgelegten Maximum ändern. Das Limit mancher APIs bleibt niedrig, bis Sie die Abrechnung für Ihr Projekt aktivieren.

Führen Sie folgende Schritte aus, um die Limits für Ihre API aufzurufen oder zu ändern:

  1. Rufen Sie in der Google Cloud Console die Seite Dashboard „APIs & Dienste“ auf.

    Dashboard "APIs & Dienste" aufrufen

  2. Wählen Sie aus der Projektliste ein Projekt aus oder erstellen Sie ein neues.
  3. Klicken Sie auf den Namen der jeweiligen API.
  4. Klicken Sie auf Kontingente. Wenn der Tab Kontingente nicht in der Tab-Navigation angezeigt wird, sind für die ausgewählte API keine Kontingente definiert.
  5. Um das Kontingent zu ermitteln, das Sie beschränken möchten, geben Sie die entsprechenden Attribute und Werte in das Feld Filter ein. Geben Sie beispielsweise Kontingent:Subnetzwerke ein, um das Kontingent Subnetzwerke zu ermitteln.
  6. Klicken Sie auf das Kästchen neben dem Kontingent, das Sie beschränken möchten, und dann auf KONTINGENTE BEARBEITEN.
  7. Füllen Sie das Formular zur Kontingentänderung aus, einschließlich des neuen Limits, das Sie festlegen möchten.
  8. Klicken Sie auf Anfrage senden.

Für einige APIs können Sie ein Formular senden, um ein höheres Limit anzufordern. Bei einigen APIs können Sie nur dann ein höheres Kontingent angeben, wenn die Abrechnung für das Projekt aktiviert ist.

Anfragen pro Nutzer beschränken

Um zu verhindern, dass einzelne Nutzer Ihr API-Kontingent aufbrauchen, gibt es in einigen APIs ein Limit pro Nutzer und Minute.

Wenn Sie prüfen möchten, ob für Ihre API ein Standardlimit pro Nutzer und Minute gilt, suchen Sie in Ihren API-Kontingenten danach. Eine Anleitung dazu finden Sie unter Limits für die Anzahl der Anfragen ansehen und ändern. Wenn für die API ein solches Standardlimit vorhanden ist, können Sie den Wert ändern, um das Kontingent zu begrenzen, das jedem Nutzer zur Verfügung steht. Folgen Sie dazu der Anleitung unten. Wenn Ihre API dieses Standardlimit nicht in ihren Kontingenten enthält, wird das Hinzufügen oder Ändern nicht unterstützt.

Standardmäßig verwendet das System das authentifizierte Hauptkonto, um einzelne Nutzer eindeutig zu identifizieren. Das authentifizierte Hauptkonto umfasst Nutzerkonten mit OAuth-Tokens, Dienstkonten oder föderierten Workload-Identitäten. Wenn kein authentifiziertes Hauptkonto vorhanden ist, verwendet das System die Client-IP-Adresse. Da dieses Fallback-Verhalten standardmäßig aktiv ist, werden Kontingente pro Nutzer auch dann erzwungen, wenn Sie keine Nutzerkennung angeben.

Die Verwendung des Client-IP-Adress-Fallbacks hat zwei wesentliche Einschränkungen:

  • Gemeinsam genutzte öffentliche IP-Adressen: Mehrere Nutzer hinter einem NAT-Gateway (Network Address Translation) oder Proxy, z. B. einem Schulbüro oder VPN-Endpunkt, verwenden eine gemeinsame öffentliche IP-Adresse. Ihre Anfragen werden im selben Kontingent-Bucket zusammengefasst, was möglicherweise zu einem vorzeitigen Aufbrauchen des Kontingents führt.
  • IP-basierte Umgehung: Nutzer mit Zugriff auf große Blöcke von IPv6-Adressen oder VPN-Proxys können Client-IP-Adressen rotieren, um die Ratenbegrenzung zu umgehen. Daher ist der IP-Fallback für einen robusten Schutz vor Missbrauch nicht zuverlässig.

Wenn Sie die API von einer serverseitigen Anwendung aus aufrufen, bei der der aufrufende Code auf einem Server gehostet wird, der Ihnen gehört, und zwar im Namen mehrerer Nutzer, und Sie ein einzelnes authentifiziertes Hauptkonto verwenden, werden alle Aufrufe diesem einzelnen Hauptkonto zugeordnet. In diesem Fall können Anrufe von einzelnen Nutzern nicht separat begrenzt werden. Um dies zu verhindern, können Sie die Standardnutzer-ID überschreiben und die Kontingentnutzung partitionieren, indem Sie den Parameter quotaUser oder den Header X-Goog-Quota-User in Ihren Anfragen angeben. Diese werden in der Dokumentation Systemparameter definiert.

Wenn Sie die Standardnutzeridentifizierung mit dem Parameter quotaUser oder dem Header X-Goog-Quota-User überschreiben möchten, müssen Sie das Kontingentprojekt mit einem gültigen API-Schlüssel mit Dienstbeschränkungen wie IP-Adressenbeschränkungen oder HTTP-Referrer-Beschränkungen identifizieren. Andernfalls wird der Parameter oder Header ignoriert und das System greift auf die Standardnutzeridentifizierung zurück.

Verwenden Sie den URL-Suchparameter quotaUser=userID, um einen Nutzer zu identifizieren. Dieser Wert wird nur für die kurzfristige Kontingentdurchsetzung verwendet. Sie müssen also keine echte Nutzer-ID verwenden. Um einen Nutzer eindeutig zu identifizieren, können Sie einen beliebigen String verwenden. Der String ist jedoch auf 40 Zeichen begrenzt.

Zum Schutz der Privatsphäre der Nutzer und zur Begrenzung des Messwertvolumens werden in der Google Cloud Console und in Cloud Monitoring keine Telemetriedaten gespeichert oder angezeigt, die von einem einzelnen quotaUser oder einer einzelnen IP-Adresse geparst wurden. Sie können das Gesamtkontingentlimit für das Projekt und die Gesamtnutzung einsehen, aber keine Benachrichtigungen für bestimmte einzelne Nutzer überwachen, überschreiben oder konfigurieren.

Wenn Ihre API kein Standardlimit pro Nutzer und Minute enthält, werden quotaUser-Werte ignoriert.

Alle Kontingente für APIs in einem Projekt aufrufen und bearbeiten

Sie können die Kontingentlimits für alle abrechenbaren APIs in einem bestimmten Projekt in derGoogle Cloud Console im Bereich IAM & Verwaltung auf der Seite Kontingente ansehen, bearbeiten und höhere Kontingentlimits anfordern.

Führen Sie folgende Schritte aus, um Kontingente für alle kostenpflichtigen APIs in Ihrem Projekt aufzurufen und zu bearbeiten:

  1. Rufen Sie in der Google Cloud Console die Seite Kontingente auf.

    Kontingente aufrufen

  2. Wählen Sie aus der Projektliste ein Projekt aus oder erstellen Sie ein neues. Die Seite Kontingente wird für das ausgewählte Projekt angezeigt. Jeder Kontingenttyp, der in den einzelnen Diensten verfügbar ist, wird in einer eigenen Zeile aufgeführt.
  3. Klicken Sie auf Filtertabelle von , um Ihr Kontingent anhand eines bestimmten Attributs abzufragen.
  4. Klicken Sie auf die Kästchen neben den Kontingenten, die Sie bearbeiten möchten. Die Abrechnung muss für das Projekt aktiviert sein, damit einige der Kästchen angeklickt werden können.
  5. Klicken Sie auf KONTINGENTE BEARBEITEN.
  6. Maximieren Sie im angezeigten Bereich Kontingentänderungen die Dienstansicht, bearbeiten Sie dann die Kontingente in diesem Dienst nach Bedarf und klicken Sie auf FERTIG.
  7. Wiederholen Sie diese Schritte, um die Kontingente in jedem der ausgewählten Dienste zu bearbeiten.
    • Die aktuellen Kontingentlimits sind in den Eingabefeldern vorab ausgefüllt.
    • Ein Dienst mit einem Warnsymbol () beim Senden hat Eingabefehler.
    • Zum Bearbeiten weiterer Kontingente können Sie diese wie oben beschrieben auswählen.
    • Sie können einen Dienst aus dem Bereich Kontingentänderungen entfernen. Dazu bewegen Sie den Mauszeiger auf die nicht erweiterte Dienstansicht und klicken auf das Löschsymbol ().
  8. Klicken Sie auf WEITER, wenn Sie mit dem Bearbeiten der Kontingente fertig sind.
  9. Wenn Ihre Anfrage zur Kontingentbearbeitung überprüft werden muss, wird das Formular Kontaktdetails angezeigt. Füllen Sie das Formular mit Ihren Kontaktdaten aus.
  10. Klicken Sie auf ANFRAGE SENDEN.