Auf dieser Seite werden die Verwendung des Kontingentprojekts und die Bestimmung des Projekts definiert. Wenn Sie prüfen, ob Ihr Kontingentprojekt korrekt 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 durchgesetzt 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 das 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 an der Compute Engine-Instanz ausführen, stellt das Projekt mit der Instanz das Kontingent für die Anfrage bereit. Dies gilt unabhängig davon, ob Sie das Google Cloud CLI, die REST API 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 vorherigen 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 identifizieren
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 kann schwierig sein, den verwendeten API-Typ zu ermitteln. Aktivierung und Kontingent werden jedoch auf die gleiche Weise erzwungen. Wenn ein Dienstkonto aus Projekt A eine Lesemethode in Projekt B aufruft und in keinem Projekt die API aktiviert ist, gibt die Fehlermeldung API not enabled
an, welches Projekt auf die Aktivierung geprüft wird. Das auf die Aktivierung geprüfte Projekt ist das gleiche, das auf das Ratenkontingent geprüft wird.
Nächste Schritte
- Kontingentprojekt festlegen
- Erfahren Sie mehr über Standardanmeldedaten für Anwendungen
- Erhalten Sie weitere Informationen zur Authentifizierung
- Lernen Sie Kontingente kennen