Cota

A configuração da cota ajuda a conseguir imparcialidade e criar orçamentos no Service Usage.

A configuração da cota funciona da seguinte maneira: - A configuração do serviço define um conjunto de métricas. - Para chamadas da API, quota.metric_rules mapeia métodos para métricas com os custos correspondentes. - quota.limits define limites para as métricas, que serão usados para verificações de cota no tempo de execução.

Um exemplo de configuração de cota no formato yaml:

Cota:

 - name: apiWriteQpsPerProject
   metric: library.googleapis.com/write_calls
   unit: "1/min/{project}"  # rate limit for consumer projects
   values:
     STANDARD: 10000

 # The metric rules bind all methods to the read_calls metric,
 # except for the UpdateBook and DeleteBook methods. These two methods
 # are mapped to the write_calls metric, with the UpdateBook method
 # consuming at twice rate as the DeleteBook method.
 metricRules:
 - selector: "*"
   metricCosts:
     library.googleapis.com/read_calls: 1
 - selector: google.example.library.v1.LibraryService.UpdateBook
   metricCosts:
     library.googleapis.com/write_calls: 2
 - selector: google.example.library.v1.LibraryService.DeleteBook
   metricCosts:
     library.googleapis.com/write_calls: 1

Definição da métrica correspondente:

 metrics:
 - name: library.googleapis.com/read_calls
   displayName: Read requests
   metricKind: DELTA
   valueType: INT64

 - name: library.googleapis.com/write_calls
   displayName: Write requests
   metricKind: DELTA
   valueType: INT64
Representação JSON

{
  "limits": [
    {
      object(QuotaLimit)
    }
  ],
  "metricRules": [
    {
      object(MetricRule)
    }
  ]
}
Campos
limits[]

object(QuotaLimit)

Lista de definições de QuotaLimit para o serviço.

metricRules[]

object(MetricRule)

Lista de definições de MetricRule. Cada uma mapeia um método selecionado para uma ou mais métricas.

QuotaLimit

QuotaLimit define um limite específico que se aplica em uma duração específica para um tipo de limite. Pode haver no máximo um limite para uma duração e combinação de tipo de limite definida dentro de um QuotaGroup.

Representação JSON

{
  "name": string,
  "description": string,
  "defaultLimit": string,
  "maxLimit": string,
  "freeTier": string,
  "duration": string,
  "metric": string,
  "unit": string,
  "values": {
    string: string,
    ...
  },
  "displayName": string
}
Campos
name

string

Nome do limite da cota.

O nome precisa ser fornecido e ser exclusivo no serviço. O nome só pode incluir caracteres alfanuméricos e "-".

O comprimento máximo do nome do limite é de 64 caracteres.

description

string

Opcional. Descrição detalhada e visível pelo usuário para esse limite de cota. Deve ser usado somente quando for preciso fornecer mais contexto para entender esse limite do que apenas o nome de exibição do limite (veja: displayName).

defaultLimit

string (int64 format)

Número padrão de tokens que podem ser consumidos na duração especificada. Este é o número de tokens atribuídos quando um desenvolvedor de aplicativo cliente ativa o serviço para o projeto.

Especificar um valor 0 bloqueará todas as solicitações. Pode ser usado se você estiver provisionando a cota para consumidores selecionados e bloqueando outros. Da mesma maneira, um valor -1 indicará uma cota ilimitada. Não são permitidos outros valores negativos.

Usado apenas por cotas baseadas em grupo.

maxLimit

string (int64 format)

Número máximo de tokens que podem ser consumidos na duração especificada. Os desenvolvedores de aplicativos cliente podem substituir o limite padrão até este valor máximo. Se especificado, esse valor não pode ser definido como inferior ao limite padrão. Se não for especificado, ele é definido como o limite padrão.

Para permitir que os clientes apliquem substituições sem limite superior, defina como -1 para indicar uma cota máxima ilimitada.

Usado apenas por cotas baseadas em grupo.

freeTier

string (int64 format)

Valor de nível gratuito exibido no Developers Console para esse limite. O nível gratuito é o número de tokens que serão subtraídos do valor faturado quando o faturamento estiver ativado. Este campo só pode ser definido em um limite com duração "1d", em um grupo faturável. Ele é inválido em qualquer outro limite. Se este campo não estiver configurado, ele é definido por padrão como 0, o que indica que não existe m nível gratuito para este serviço.

Usado apenas por cotas baseadas em grupo.

duration

string

Duração deste limite na notação textual. Por exemplo: "100s", "24h", "1d". Para durações superiores a um dia, apenas múltiplos de dias são aceitos. Nós aceitamos apenas "100s" e "1d", por enquanto. Adicionaremos mais opções no futuro. "0" indica uma duração indefinida.

Usado apenas por cotas baseadas em grupo.

metric

string

O nome da métrica a que este limite de cota se aplica. Os limites de cota com a mesma métrica serão verificados juntos durante o tempo de execução. A métrica precisa ser definida dentro da configuração do serviço.

unit

string

Especifique a unidade do limite da cota. Usa a mesma sintaxe que [Metric.unity][]. Os tipos de unidades aceitas são determinados pelo sistema de back-end de cota.

Veja alguns exemplos: * "1/min./{project}" para a cota por minuto por projeto.

Observação: a ordem dos componentes da unidade é insignificante. O "1" no início é obrigatório para seguir a sintaxe da unidade da métrica.

values

map (key: string, value: string (int64 format))

Valores-limite nivelados. Você precisa especificar esse campo como um par de chave-valor, com um número inteiro que é o número máximo de solicitações permitidas para a unidade especificada. Atualmente, apenas STANDARD é aceito.

Um objeto com uma lista de pares "key": value. Exemplo: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

displayName

string

Nome de exibição visível pelo usuário para este limite. Opcional. Se não estiver configurado, a IU fornecerá um nome de exibição padrão com base na configuração da cota. Este campo pode ser usado para modificar o nome de exibição padrão gerado pela configuração.