Kontingentprojekt – Übersicht

Auf dieser Seite werden die Verwendung des Kontingentprojekts und die Festlegung des Projekts definiert. Wenn Ihr Kontingentprojekt richtig festgelegt ist, können Sie fehlgeschlagene Anfragen an Google Cloud APIs und unnötige Kontingentfehler vermeiden.

Jede Anfrage an eine Google Cloud API wird auf ein Kontingent angerechnet. Da Kontingente für jedes Projekt erzwungen werden, bedeutet dies, dass für jede Anfrage ein Projekt erforderlich ist, um Kontingente bereitzustellen. Dieses Projekt wird als Kontingentprojekt bezeichnet. Es wird gelegentlich auch als Abrechnungsprojekt bezeichnet. Das Abrechnungsprojekt und das Kontingentprojekt sind dasselbe Projekt. Weitere Informationen finden Sie unter Kontingentprojekt festlegen.

Wie das Kontingentprojekt ermittelt wird

Wie das Kontingentprojekt ermittelt wird, hängt vom Typ der verwendeten API ab: ressourcenbasierte API oder clientbasierte API.

Ressourcenbasierte APIs

Bei ressourcenbasierten Google Cloud APIs ist das Projekt, das ein Kontingent für einen API-Aufruf bereitstellt, auch das Projekt mit der Ressource, auf die zugegriffen wird. Wenn Sie beispielsweise eine Compute Engine-Instanz erstellen, müssen Sie das Projekt für diese neue Instanz angeben. Das Projekt enthält dann die neu erstellte Instanz. Wenn Sie später Vorgänge auf der Compute Engine-Instanz ausführen, stellt das Projekt, das die Instanz enthält, das Kontingent für die Anfrage bereit. Dies gilt unabhängig davon, ob Sie die Google Cloud CLI, REST oder Clientbibliotheken verwenden.

Sie können das Kontingentprojekt, das von einer Anfrage verwendet wird, nicht in eine ressourcenbasierte API ändern. Die Anfrage verwendet immer das Projekt, das die Ressource enthält, mit der die Anfrage ausgeführt wird.

Clientbasierte APIs

Wenn eine API keine ressourcenbasierte API ist, ist sie eine clientbasierte API. Die Cloud Translation API ist beispielsweise eine häufig verwendete clientbasierte API.

Wenn Sie eine Anfrage an eine clientbasierte API senden und ein Kontingentprojekt nicht identifiziert werden kann, schlägt die Anfrage fehl.

Das Kontingentprojekt kann auf verschiedene Arten festgelegt werden. Das Projekt wird durch Prüfung der folgenden Optionen verifiziert. Die aufgeführte Reihenfolge ist die Reihenfolge ihrer Priorität.

  • Das in der Umgebung oder der Anfrage festgelegte Kontingentprojekt.
  • Wenn Sie einen API-Schlüssel verwenden, um Anmeldedaten für eine Anfrage bereitzustellen, wird das mit dem API-Schlüssel verknüpfte Projekt als Kontingentprojekt verwendet.
  • Wenn Sie die Google Cloud CLI zum Abrufen Ihres Zugriffstokens verwenden und sich mit Ihren Nutzeranmeldedaten bei der gcloud CLI authentifiziert haben, wird das freigegebene Projekt der gcloud CLI manchmal als Kontingentprojekt verwendet. Nicht alle clientbasierten APIs greifen auf das freigegebene Projekt zurück.
  • Wenn das Hauptkonto für den API-Aufruf ein Dienstkonto ist, auch im Wege der Identitätsübertragung, wird das mit dem Dienstkonto verknüpfte Projekt als Kontingentprojekt verwendet.
  • Wenn das Hauptkonto für die API ein Nutzer der Mitarbeiteridentitätsföderation ist, wird das Nutzerprojekt für Workforce-Pools als Kontingentprojekt verwendet.

Wenn keine der oben genannten Prüfungen ein Kontingentprojekt ergibt, schlägt die Anfrage fehl.

Informationen zum freigegebenen Projekt der gcloud CLI für clientbasierte APIs

Wenn Sie mit der gcloud CLI eine Anfrage an eine clientbasierte API senden, ohne das Kontingentprojekt festzulegen, kann die Anfrage auf das freigegebene Projekt der gcloud CLI zurückgreifen oder die Anfrage kann möglicherweise fehlschlagen. Das freigegebene Projekt der gcloud CLI wird von allen Anfragen der gcloud CLI in allen Projekten verwendet. Wenn also viele andere gcloud CLI-Anfragen ebenfalls dieses Projekt als Kontingentprojekt verwenden, kann das Kontingent für das freigegebene Projekt vorübergehend erschöpft sein. In diesem Fall schlägt Ihre Anfrage mit einer Fehlermeldung, dass das Kontingent aufgebraucht ist, fehl.

Aktuelles Kontingentprojekt für clientbasierte APIs ermitteln

Wenn Sie das für einen gcloud CLI-Befehl verwendete Projekt identifizieren möchten, fügen Sie das Flag --log-http in die gcloud CLI ein, um die Header für den Befehl drucken. Das Log enthält das für diesen Befehl verwendete Projekt als Kontingentprojekt im Feld X-Goog-User-Project.

Ermitteln, ob eine API ressourcen- oder clientbasiert ist

Es ist möglicherweise schwierig zu ermitteln, welche Art von API Sie verwenden. Aktivierung und Kontingent werden jedoch auf die gleiche Weise erzwungen. Wenn ein Dienstkonto aus Projekt A eine Lesemethode in Projekt B aufruft und für kein Projekt die API aktiviert ist, gibt die Fehlermeldung API not enabled an, welches Projekt auf Aktivierung geprüft wird. Das auf die Aktivierung geprüfte Projekt ist das gleiche, das auf das Ratenkontingent geprüft wird.

Nächste Schritte