Auf dieser Seite wird erläutert, wie Sie Kontingente für Ihre API in Cloud Endpoints Frameworks konfigurieren. Eine Übersicht über die Funktionalität von Kontingenten finden Sie unter Über Kontingente.
Java
In der folgenden Anleitung wird davon ausgegangen, dass Sie bereits
- den Code für Ihre API geschrieben und annotiert,
- die API-Verwaltung hinzugefügt,
- die API bereitgestellt und
- Konfigurierte API zur Verwendung eines API-Schlüssels Das ist erforderlich, damit Endpoints Framework das Google Cloud-Projekt identifizieren kann, dem die aufrufende Anwendung zugeordnet ist. Weitere Informationen finden Sie unter Durch einen API-Schlüssel geschützte APIs freigeben.
So konfigurieren Sie Kontingente für Ihre API:
Fügen Sie in der Datei mit den API-bezogenen Annotationen der @Api-Annotation Folgendes hinzu:
limitDefinitions = { @ApiLimitMetric( name = "YOUR_METRIC_NAME", displayName = "YOUR_METRIC_DISPLAY_NAME", limit = YOUR_QUOTA_LIMIT) }
- Ersetzen Sie
YOUR_METRIC_NAME
durch einen Namen, der den API-Anfragezähler beschreibt. - Ersetzen Sie
YOUR_METRIC_DISPLAY_NAME
durch den auf der Seite Endpoints > Dienste > Kontingente aufgeführten Text, um das Kontingent zu identifizieren. Ersetzen Sie
YOUR_QUOTA_LIMIT
durch eine Ganzzahl. Das ist die Anzahl der Anfragen, die eine mit einem Google Cloud-Nutzerprojekt verknüpfte Anwendung in einer Minute senden kann. Beispiel:@Api( name = "echo", version = "v1", namespace = @ApiNamespace( ownerDomain = "echo.example.com", ownerName = "echo.example.com", packagePath = "" ), limitDefinitions = { @ApiLimitMetric( name = "read-requests", displayName = "Read requests", limit = 1000), @ApiLimitMetric( name = "list-requests", displayName = "List requests", limit = 100), @ApiLimitMetric( name = "write-requests", displayName = "Write requests", limit = 50), } )
- Ersetzen Sie
Fügen Sie bei jeder Methode, auf die Sie ein Kontingent anwenden möchten, der Annotation
@ApiMethod
Folgendes hinzu:metricCosts = { @ApiMetricCost( name ="YOUR_METRIC_NAME", cost = YOUR_COST) }
- Ersetzen Sie
YOUR_METRIC_NAME
durch einen Namen, den Sie im ParameterlimitDefinitions
in der@Api
-Annotation angegeben haben. Ersetzen Sie
YOUR_COST
durch einen ganzzahligen Wert, der die Kosten für jede Anfrage angibt.Beispiel:
@ApiMethod(name = "echo", metricCosts = { @ApiMetricCost( name = "read-requests", cost = 1) }) public Message echo(Message message, @Named("n") @Nullable Integer n) { // ...function code here... }
- Ersetzen Sie
Weitere Informationen zu den in Kontingenten verwendeten Annotationen finden Sie unter:
Python
In der folgenden Anleitung wird davon ausgegangen, dass Sie bereits
- Version 2.4.5 oder höher der Endpoints Frameworks-Bibliothek installiert,
- Ihre API erstellt,
- einen Webserver erstellt,
- die API-Verwaltung hinzugefügt,
- die API bereitgestellt und
- Konfigurierte API zur Verwendung eines API-Schlüssels Das ist erforderlich, damit Endpoints Framework das Google Cloud-Projekt identifizieren kann, dem die aufrufende Anwendung zugeordnet ist. Weitere Informationen finden Sie unter Durch einen API-Schlüssel geschützte APIs freigeben.
So konfigurieren Sie Kontingente für Ihre API:
Erstellen Sie in der Datei, die den API-Decorator enthält, eine Liste von
LimitDefinition
-Instanzen. Beispiel:quota_limits = [ endpoints.LimitDefinition( "YOUR_METRIC_NAME", "YOUR_METRIC_DISPLAY_NAME", limit) ]
- Ersetzen Sie
YOUR_METRIC_NAME
durch einen Namen, der den API-Anfragezähler beschreibt. - Ersetzen Sie
YOUR_METRIC_DISPLAY_NAME
durch den auf der Seite Endpoints > Dienste > Kontingente aufgeführten Text, um das Kontingent zu identifizieren. Ersetzen Sie
limit
durch eine Ganzzahl. Das ist die Anzahl der Anfragen, die eine mit einem Google Cloud-Nutzerprojekt verknüpfte Anwendung in einer Minute senden kann. Beispiel:quota_limits = [ endpoints.LimitDefinition('read-requests', 'Read Requests', 1000), endpoints.LimitDefinition('list-requests', 'List Requests', 100), endpoints.LimitDefinition('write-requests', 'Write Requests', 50), ]
- Ersetzen Sie
Fügen Sie dem API-Decorator Ihr Kontingent hinzu. Weisen Sie es hierfür dem Argument
limit_definitions
zu. Beispiel:@endpoints.api(name='bookstore', version='v1', limit_definitions=quota_limits)
Weisen Sie für jede Methode, auf die Sie ein Kontingent anwenden möchten, dem Argument
METRIC_COSTS
des Methoden-Decorators ein Wörterbuch zu. Der Schlüssel muss ein Name sein, den Sie im Argumentlimit_definitions
für den API-Decorator angegeben haben. Der Wert ist eine Ganzzahl, die die Kosten pro Anfrage angibt. Beispiel:@endpoints.method(path='shelves/{shelf}', http_method='GET', metric_costs={'read-requests': 1}) def get_shelf(self, request): # ...function code here...
Weitere Informationen zu den in Kontingenten verwendeten Decorators finden Sie unter: