Esta página mostra como configurar cotas para sua API. Em um nível alto, as etapas são:
- Adicionar as informações sobre a cota ao arquivo de configuração da API gRPC.
- Implantar o arquivo de configuração da API gRPC.
- Implantar o Extensible Service Proxy (ESP).
Para uma visão geral da funcionalidade oferecida pelas cotas, consulte Sobre cotas.
Pré-requisitos
Como ponto de partida nesta página, presume-se que você tenha:
- configurado o Cloud Endpoints;
- implantado a configuração do Endpoints;
- implantado o back-end da API;
- Configurar a API para usar uma chave de API. Isso é necessário para que o Endpoints identifique o projeto do Google Cloud ao qual o aplicativo de chamada está associado. Para mais informações, veja Como compartilhar APIs protegidas por chaves.
Como adicionar uma cota ao seu arquivo de configuração da API gRPC
No procedimento a seguir, descrevemos como adicionar as configurações necessárias ao arquivo de configuração da API gRPC para estipular as cotas. Para simplificar, esta página se refere ao arquivo de configuração da API gRPC como o arquivo api_config.yaml
.
Adicione as três seções a seguir ao arquivo api_config.yaml
:
metrics
: uma métrica com nome que conta as solicitações para sua API. Forneça um nome que descreve o contador. O nome pode ser uma categoria, comoread-requests
ouwrite-requests
. Como alternativa, se você estiver definindo uma cota para um método específico, convém incluir o nome do método, por exemplo,echo-api/echo_requests
.quota.limits
: representa um único limite aplicável em uma métrica nomeada. Aqui você configura o número permitido de solicitações para a métrica definida. Atualmente, são aceitos apenas limites por minuto e por projeto.quota.metric_rules
: ummetric_rule
mapeia métodos para métricas (de muitos para muitos). Uma solicitação para um método aloca um contador para cada uma das métricas relacionadas. Ao associar um método a uma métrica, você sempre especifica um custo para a solicitação. É possível configurar o custo de cada método de forma independente. Isso permite o consumo de métodos distintos em taxas diferentes da mesma métrica. Caso você não tenha um requisito de cota complexo, configure o custo de cada métrica como 1.
Para configurar cotas na API:
- Abra o arquivo
api_config.yaml
do projeto em um editor de texto. Adicione o campo
metrics
no nível superior do arquivo (não recuado ou aninhado), depois do campoapis
.metrics: - name: "YOUR_METRIC_NAME" display_name: "YOUR_METRIC_DISPLAY_NAME" value_type: INT64 metric_kind: DELTA`
- Substitua
YOUR_METRIC_NAME
por um nome que descreve 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 métrica. - O campo
value_type
precisa serINT64
. - O campo
metric_kind
precisa serDELTA
.
- Substitua
Adicione um campo
quota
no mesmo nível quemetrics
e adicione um campolimits
aninhado dentro da seçãoquota
.quota: limits: - name: "YOUR_LIMIT_NAME" metric: "YOUR_METRIC_NAME" unit: "1/min/{project}" values: STANDARD: VALUE_FOR_THE_LIMIT
- Substitua
YOUR_LIMIT_NAME
por um nome que descreve o limite. - Substitua
YOUR_METRIC_NAME
por ummetric.name
definido anteriormente. - O campo
unit
precisa ser"1/min/{project}"
. Esse é o identificador para o limite por minuto e por projeto. - O campo
values
precisa conterSTANDARD
. - Substitua
VALUE_FOR_THE_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.
- Substitua
Se quiser, defina métricas e limites adicionais para cada métrica.
Adicione uma linha
metric_rules
recuada emquota
, depois da seçãolimits
. Na seçãometric_rules
, associe uma métrica definida anteriormente a um método, da seguinte maneira:metric_rules: - metric_costs: YOUR_METRIC_NAME: YOUR_METRIC_COST selector: [METHODS]
- Substitua
YOUR_METRIC_NAME
por ummetric.name
definido anteriormente. - Substitua
YOUR_METRIC_COST
por um número inteiro. Para cada solicitação, o contador de solicitações da métrica é acrescido do número que você especificou para o custo. Para o campo
selector
, especifique uma das seguintes opções:- Para associar todos os métodos em todas as APIs com o
metric_cost
, useselector: "*"
- Para associar todos os métodos em uma API com o
metric_cost
, useselector: YOUR_API_NAME.*
- Para associar um método específico em uma API com
metric_cost
, useselector: YOUR_API_NAME.YOUR_METHOD_NAME
- Para associar todos os métodos em todas as APIs com o
- Substitua
Salve o arquivo
api_config.yaml
.
Exemplos de configuração de cota
Os três exemplos a seguir mostram como configurar cotas na sua API.
O exemplo a seguir mostra como configurar o campo metric
:
metrics: # Define a metric for read requests. - name: "read-requests" display_name: "Read requests" value_type: INT64 metric_kind: DELTA`
O exemplo a seguir mostra como configurar os campos quota
e limits
na seção quota
:
metrics: # Define a metric for read requests. - name: "read-requests" display_name: "Read requests" value_type: INT64 metric_kind: DELTA quota: limits: # Define the limit or the read-requests metric. - name: "read-limit" metric: "read-requests" unit: "1/min/{project}" values: STANDARD: 1000
O exemplo a seguir mostra como configurar a linha metrics
após a seção limits
:
metrics:
# Define a metric for read requests.
- name: "read-requests"
display_name: "Read requests"
value_type: INT64
metric_kind: DELTA
quota:
limits:
# Define the limit or the read-requests metric.
- name: "read-limit"
metric: "read-requests"
unit: "1/min/{project}"
values:
STANDARD: 1000
metric_rules:
- metric_costs:
"read-requests": 1
selector: *
Como implantar o arquivo api_config.yaml
e o ESP
Para que a cota entre em vigor, você precisa:
- Implante o arquivo
api_config.yaml
no Service Management, que atualiza a configuração no Endpoints. Para ver as etapas detalhadas, consulte Como implantar a configuração do Endpoints. - Implante o ESP. Para ver as etapas detalhadas, consulte Como implantar o back-end da API.