Diese Seite wurde von der Cloud Translation API übersetzt.
Switch to English

Verbraucherkontingent verwalten

Auf dieser Seite wird beschrieben, wie Sie mithilfe der Service Consumer Management API die Kontingentbeschränkungen anzeigen und überschreiben, die für einzelne Nutzer Ihres Dienstes gelten.

Machen Sie sich unbedingt mit dem Dienstkontingentmodell vertraut, um die in dieser Anleitung verwendete Terminologie besser zu verstehen.

Für die Programmierung mit der Service Infrastructure API empfehlen wir eine unserer verfügbaren Clientbibliotheken. Um mit der API zu experimentieren, folgen Sie der Anleitung in diesem Leitfaden und verwenden Sie den Befehl curl, um die API zu testen, ohne eine vollständige Anwendungsentwicklungsumgebung einzurichten.

Dienstkontingent anzeigen

Für diese Anleitung verwenden wir ein Projekt mit dem Namen consumer-project-id und einen Dienst mit dem Namen myservice.appspot.com. Setzen Sie in jedem gcurl-Befehl Ihren eigenen Dienst und Ihr Nutzerprojekt ein.

Verwenden Sie die folgende Methode, um alle Kontingentlimits für alle Messwerte anzuzeigen, die für einen bestimmten Nutzer gelten:

gcurl https://serviceconsumermanagement.googleapis.com/v1beta1/services/myservice.appspot.com/projects/consumer-project-id/consumerQuotaMetrics

Dieser Aufruf antwortet mit einer Liste von Messwerten, die vom Dienst definiert wurden und jeweils eine Liste der Grenzwerte für die für diesen Nutzer geltenden Messwerte, den Werten für diese Limits und etwaigen Überschreibungen liefern. Sie sehen hier ein Beispiel:

{
  "metrics": [
    {
      "name": "services/myservice.appspot.com/projects/consumer-project-id/consumerQuotaMetrics/airport_requests",
      "metric": "airport_requests"
      "displayName": "Airport Requests"
      "consumerQuotaLimits": [
        {
          "name": "services/myservice.appspot.com/projects/consumer-project-id/consumerQuotaMetrics/airport_requests/limits/%2Fmin%2Fproject",
          "metric": "airport_requests",
          "unit": "1/min/{project}",
          "quotaBuckets": [
            {
              "effectiveLimit": "5",
              "defaultLimit": "5",
            }
          ]
        }
      ],
    }
  ]
}

Jeder Messwert in der Antwort hat ein Namensfeld. Verwenden Sie den Namen in der URL, um die Kontingenteinstellungen nur für diesen Messwert und nicht für alle Messwerte zu überprüfen:

gcurl https://serviceconsumermanagement.googleapis.com/v1beta1/{name}

In ähnlicher Weise hat jedes Limit innerhalb eines Messwerts ein Namensfeld. Verwenden Sie den Namen in der URL, um die Kontingenteinstellungen für genau dieses Limit für diesen Messwert und nicht für alle Limits für einen Messwert oder alle Messwerte zu überprüfen:

gcurl https://serviceconsumermanagement.googleapis.com/v1beta1/{name}

Überschreibung durch den Ersteller anwenden

Der Inhaber oder Administrator eines Dienstes kann eine Überschreibung durch den Ersteller auf ein bestimmtes Limit für einen bestimmten Nutzer anwenden und eine Kontingenterhöhung für dieses Limit gewähren.

Um ein Limit zu identifizieren, verwenden Sie zuerst eine der oben genannten Methoden, um das jeweilige Kontingentlimit zu ermitteln, und verwenden Sie das Namensfeld, um eine Überschreibung durch den Ersteller darauf anzuwenden:

gcurl https://serviceconsumermanagement.googleapis.com/v1beta1/{name}/producerOverrides -d '{"override": {"override_value": "12345"} }'

Mit diesem Aufruf können Sie eine neue Überschreibung anwenden oder eine vorhandene Überschreibung auf einen neuen Wert aktualisieren. Um ein Limit für ein Limit zuzuweisen, verwenden Sie "-1" als Überschreibungswert.

Wenn der Aufruf erfolgreich ist, wird eine Vorgangs-ID zurückgegeben, die die laufende Arbeit auf dem Server darstellt, wenn sich die Kontingentänderung auf Backend-Systeme ausbreitet:

{
  "name": "operations/quf.92accba3-6530-4fc1-9a95-c1280d48a6b7"
}

Verwenden Sie den Namen des Vorgangs, um dessen Fortschritt zu überprüfen:

gcurl https://serviceconsumermanagement.googleapis.com/v1/{name}

Wenn dieser Aufruf eine Nachricht zurückgibt, die "done":true enthält, ist der Vorgang abgeschlossen. Wenn der Vorgang fehlgeschlagen ist, enthält die Meldung Fehlerdetails.

Sie können auch überprüfen, ob eine Änderung vorgenommen wurde, indem Sie den ursprünglichen "get"-Aufruf für das bestimmte Limit wiederholen. Das Limit sollte nun das zusätzliche Feld „producerOverride“ enthalten.

Große Kontingentänderungen erzwingen

Wenn eine Überschreibung dazu führen würde, dass das erzwungene Kontingent um mehr als 10 % sinkt, wird der Anruf als Sicherheitsmaßnahme abgelehnt, um zu vermeiden, dass das Kontingent versehentlich zu schnell sinkt. Verwenden Sie das "force"-Flag, um diese Einschränkung zu ignorieren:

gcurl https://serviceconsumermanagement.googleapis.com/v1beta1/{name}/producerOverrides -d '{"override": {"override_value": "0"}, "force": true}'

Regionale oder zonale Kontingentüberschreibungen anwenden

Einige Kontingentlimits werden pro Region oder pro Zone durchgesetzt. Dies wird durch das Vorhandensein von /{region} oder /{zone} in der Einheit des Limits angezeigt.

Wenn Sie eine Überschreibung auf ein solches Limit anwenden, ändert sich das Basiskontingent für jede Region oder Zone. Verwenden Sie das Feld für den Standort, um das Kontingent nur für eine bestimmte Region oder Zone zu ändern:

gcurl https://serviceconsumermanagement.googleapis.com/v1beta1/{name}/producerOverrides -d '{"override": {"override_value": "135", "dimensions": {"region": "asia-south1"} } }'