Kontingente konfigurieren

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

So konfigurieren Sie Kontingente für Ihre API:

  1. 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),
            }
        )
      
  2. 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 Parameter limitDefinitions 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...
        }
      
  3. Stellen Sie die API bereit.

Weitere Informationen zu den in Kontingenten verwendeten Annotationen finden Sie unter:

Python

In der folgenden Anleitung wird davon ausgegangen, dass Sie bereits

So konfigurieren Sie Kontingente für Ihre API:

  1. 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),
        ]
      
  2. 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)
    
  3. 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 Argument limit_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...
    
  4. Stellen Sie die API bereit.

Weitere Informationen zu den in Kontingenten verwendeten Decorators finden Sie unter: