Como configurar cotas

Nesta página, você aprende a configurar cotas da API no Cloud Endpoints Frameworks. Para uma visão geral da funcionalidade fornecida pelas cotas, consulte Sobre cotas.

Java

Para o procedimento a seguir, estes são os pré-requisitos:

Para configurar cotas na API:

  1. No arquivo que contém as anotações com escopo da API, adicione o seguinte à anotação @Api:

    limitDefinitions = {
          @ApiLimitMetric(
            name = "YOUR_METRIC_NAME",
            displayName = "YOUR_METRIC_DISPLAY_NAME",
            limit = YOUR_QUOTA_LIMIT)
    }
    
    • Substitua YOUR_METRIC_NAME por um nome que descreva o contador de solicitações da API.
    • Substitua YOUR_METRIC_DISPLAY_NAME pelo texto exibido na página Endpoints > Serviços > Cotas para identificar a cota.
    • Substitua YOUR_QUOTA_LIMIT por um valor inteiro. Esse é o número de solicitações que um aplicativo associado ao projeto do Google Cloud de um cliente pode fazer em um minuto. Por exemplo:

        @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. Para cada método em que você quer aplicar uma cota, adicione o seguinte à anotação @ApiMethod:

    metricCosts = {
                 @ApiMetricCost(
                   name ="YOUR_METRIC_NAME",
                   cost = YOUR_COST)
    }
    
    • Substitua YOUR_METRIC_NAME por um nome que você especificou no parâmetro limitDefinitions na anotação @Api.
    • Substitua YOUR_COST por um valor inteiro que especifica o custo de cada solicitação.

      Por exemplo:

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

Consulte os links a seguir para mais informações sobre as anotações usadas nas cotas:

Python

Para o procedimento a seguir, presume-se que você já:

Para configurar cotas na API:

  1. No arquivo que contém o decorador da API, crie uma lista de instâncias LimitDefinition como esta:

    quota_limits = [
      endpoints.LimitDefinition(
        "YOUR_METRIC_NAME",
        "YOUR_METRIC_DISPLAY_NAME",
        limit)
    ]
    
    • Substitua YOUR_METRIC_NAME por um nome que descreva o contador de solicitações da API.
    • Substitua YOUR_METRIC_DISPLAY_NAME pelo texto exibido na página Endpoints > Serviços > Cotas para identificar a cota.
    • Substitua limit por um valor inteiro. Esse é o número de solicitações que um aplicativo associado ao projeto do Google Cloud de um cliente pode fazer em um minuto. Por exemplo:

        quota_limits = [
          endpoints.LimitDefinition('read-requests', 'Read Requests', 1000),
          endpoints.LimitDefinition('list-requests', 'List Requests', 100),
          endpoints.LimitDefinition('write-requests', 'Write Requests', 50),
        ]
      
  2. Adicione sua cota ao decorador da API, atribuindo-a ao argumento limit_definitions. Por exemplo:

      @endpoints.api(name='bookstore',
                     version='v1',
                     limit_definitions=quota_limits)
    
  3. Para cada método em que você quer aplicar uma cota, atribua um dicionário ao argumento METRIC_COSTS do decorador do método. A chave precisa ser um nome que você especificou no argumento limit_definitions para o decorador da API, e o valor é um número inteiro que determina o custo de cada solicitação. Por exemplo:

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

Consulte os links a seguir para mais informações sobre os decoradores usados nas cotas: