Cloud Endpoints bietet Kontingente, mit denen Sie steuern können, wie oft Anwendungen Ihre API aufrufen können. Durch Festlegen eines Kontingents können Sie Nutzungslimits angeben, um Ihre API vor einer übermäßigen Anzahl von Anfragen zu schützen, die von aufrufenden Anwendungen eingehen. Übermäßige Anfragen können durch einen einfachen Tippfehler oder ein ineffizient gestaltetes System verursacht werden, das unnötige Aufrufe Ihrer API durchführt. Unabhängig von der Ursache ist es für den Gesamtzustand der API wichtig, den Traffic von einer Quelle zu blockieren, sobald er einen bestimmten Wert erreicht. Durch Festlegen eines Kontingents sorgen Sie dafür, dass sich eine einzige Anwendung nicht negativ auf andere Anwendungen auswirkt, die Ihre API verwenden.
Diese Seite bietet einen Überblick über die wesentliche Funktionalität von Kontingenten.
Anfragen sind an das Nutzerprojekt gebunden
Nachdem Sie ein Kontingent konfiguriert haben, verfolgt Endpoints die Anzahl der Anfragen pro Minute und pro Google Cloud-Nutzerprojekt. Jede Anwendung, die Ihre API aufruft, muss:
- ein Google Cloud-Projekt haben.
- im Google Cloud-Projekt Ihre API aktiviert haben.
- einen API-Schlüssel mit jeder Anfrage an Ihre API senden. Damit kann Cloud Endpoints das Google Cloud-Projekt identifizieren, mit dem die aufrufende Anwendung verknüpft ist, und den Anfragezähler für das Google Cloud-Projekt erhöhen.
Sie können entweder Ihre API-Nutzer eigene Projekte in der Google Cloud Console erstellen lassen oder diese Projekte für sie erstellen. Da Endpoints Kontingente pro Projekt erzwingt, muss für jeden API-Nutzer ein Projekt vorhanden sein.
Anzahl der Anfragen pro Minute beschränken
Durch Festlegen eines Kontingents können Sie die Anzahl der Anfragen pro Minute auf Ihre gesamte API oder nur auf bestimmte Methoden beschränken. Wenn der Clientcode eines Nutzerprojekts das von Ihnen konfigurierte Limit überschreitet, wird die Anfrage vor dem Senden an die API zurückgewiesen und der HTTP-Statuscode 429 too many
requests
ausgegeben. Aufrufende Anwendungen müssen den Statuscode 429
verarbeiten und exponentiellen Backoff oder andere Wiederholungslogik verwenden, um die Häufigkeit der an Ihre API gerichteten Aufrufe zu verringern.
Kontingente konfigurieren
Sie können ein oder mehrere benannte Kontingente konfigurieren und für jedes Kontingent ein anderes Häufigkeitslimit festlegen. Beispiel: Einige Methoden in Ihrer API sind ressourcenintensiv (z. B. eine Methode, die eine komplexe Abfrage ausführt und eine lange Ergebnisliste liefert) und andere Methoden sind schnell und einfach. In diesem Fall können Sie zwei Kontingente mit unterschiedlichen Ratenbeschränkungen konfigurieren und jeweils mit der ressourcenintensiven Methode und der einfachen Methode verknüpfen.
Kosten konfigurieren
Beim Verknüpfen einer Methode mit einem Kontingent müssen immer Kosten für die Anfrage definiert werden. So können verschiedene Methoden dasselbe Kontingent mit unterschiedlichen Häufigkeiten konsumieren. Sie können Kosten als Alternative zum Konfigurieren unterschiedlicher Kontingente verwenden. Angenommen, Sie konfigurieren ein Kontingent mit einem Limit von maximal 1.000 Anfragen pro Minute. Für die einfachen Methoden konfigurieren Sie einen Kostenwert von 1. Dies bedeutet, dass Kunden die einfachen Methoden 1.000 Mal pro Minute aufrufen können. Für die ressourcenintensiven Methoden konfigurieren Sie einen Kostenwert von 2, was bedeutet, dass der Anfragezähler so lange jedes Mal um 2 erhöht wird, bis das Limit 1.000 erreicht ist. Hierdurch werden die ressourcenintensiven Methoden auf 500 Anfragen pro Minute beschränkt.
Konfiguriertes Kontingent überschreiben
Auf der Seite Endpoints > Dienste wird das für jede Methode in Ihrer API konfigurierte Kontingent angezeigt. Bei Bedarf können Sie das konfigurierte Limit für ein bestimmtes Nutzerprojekt überschreiben. Sie müssen die Projektnummer des Nutzerprojekts auf der Seite Endpunkte > Dienste eingeben, um eine Überschreibung festzulegen. Wenn Sie keinen Zugriff auf das Nutzerprojekt haben, das Sie überschreiben möchten, müssen Sie sich an eine Person wenden, die Zugriff auf die Projektnummer hat.