Configurar cuotas

En esta página se describe cómo configurar cuotas para tu API en Cloud Endpoints Frameworks. Para obtener información general sobre las funciones que ofrecen las cuotas, consulta el artículo Acerca de las cuotas.

Java

En este procedimiento se presupone que ya has hecho lo siguiente:

Para configurar las cuotas de tu API:

  1. En el archivo que contiene las anotaciones de ámbito de la API, añade lo siguiente a tu anotación @Api:

    limitDefinitions = {
          @ApiLimitMetric(
            name = "YOUR_METRIC_NAME",
            displayName = "YOUR_METRIC_DISPLAY_NAME",
            limit = YOUR_QUOTA_LIMIT)
    }
    
    • Sustituye YOUR_METRIC_NAME por un nombre que describa el contador de solicitudes de API.
    • Sustituye YOUR_METRIC_DISPLAY_NAME por el texto que se muestra en la página Endpoints > Services > Quotas para identificar la cuota.
    • Sustituye YOUR_QUOTA_LIMIT por un valor entero. Es el número de solicitudes que puede enviar en un minuto una aplicación asociada al proyecto de un consumidor. Google Cloud Por ejemplo:

        @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. Añada lo siguiente a la anotación @ApiMethod de cada método al que quiera aplicar una cuota:

    metricCosts = {
                 @ApiMetricCost(
                   name ="YOUR_METRIC_NAME",
                   cost = YOUR_COST)
    }
    
    • Sustituye YOUR_METRIC_NAME por un nombre que hayas especificado en el parámetro limitDefinitions de la anotación @Api.
    • Sustituye YOUR_COST por un valor entero que especifique el coste de cada solicitud.

      Por ejemplo:

        @ApiMethod(name = "echo",
                   metricCosts = {
                     @ApiMetricCost(
                       name = "read-requests",
                       cost = 1)
                   })
        public Message echo(Message message, @Named("n") @Nullable Integer n) {
          // ...function code here...
        }
      
  3. Despliega la API.

Consulta los siguientes enlaces para obtener más información sobre las anotaciones que se emplean en las cuotas.

Python

En este procedimiento se presupone que ya has hecho lo siguiente:

Para configurar las cuotas de tu API:

  1. En el archivo que contiene el decorador de la API, crea una lista de instancias de LimitDefinition, como la siguiente:

    quota_limits = [
      endpoints.LimitDefinition(
        "YOUR_METRIC_NAME",
        "YOUR_METRIC_DISPLAY_NAME",
        limit)
    ]
    
    • Sustituye YOUR_METRIC_NAME por un nombre que describa el contador de solicitudes de API.
    • Sustituye YOUR_METRIC_DISPLAY_NAME por el texto que se muestra en la página Endpoints > Services > Quotas para identificar la cuota.
    • Sustituye limit por un valor entero. Es el número de solicitudes que puede hacer en un minuto una aplicación asociada al proyecto de un consumidor de Google Cloud. Por ejemplo:

        quota_limits = [
          endpoints.LimitDefinition('read-requests', 'Read Requests', 1000),
          endpoints.LimitDefinition('list-requests', 'List Requests', 100),
          endpoints.LimitDefinition('write-requests', 'Write Requests', 50),
        ]
      
  2. Añade tu cuota al decorador de la API asignándola al argumento limit_definitions. Por ejemplo:

      @endpoints.api(name='bookstore',
                     version='v1',
                     limit_definitions=quota_limits)
    
  3. Asigna un diccionario al argumento METRIC_COSTS del decorador de método de cada método al que quieras aplicar una cuota. La clave debe ser un nombre que haya especificado en el limit_definitions argumento del decorador de la API, y el valor es un número entero que especifica el coste de cada solicitud. Por ejemplo:

      @endpoints.method(path='shelves/{shelf}',
                        http_method='GET',
                        metric_costs={'read-requests': 1})
      def get_shelf(self, request):
      # ...function code here...
    
  4. Despliega la API.

Consulta los siguientes enlaces para obtener más información sobre los decoradores que se emplean en las cuotas.