O Cloud Endpoints fornece cotas para controlar a taxa em que os aplicativos chamam a API. Ao definir uma cota, você especifica limites de uso para proteger a API contra um número excessivo de solicitações de aplicativos de chamada. Essas solicitações em excesso podem ser causadas por um simples erro de digitação ou por um sistema projetado incorretamente que faz chamadas desnecessárias para sua API. Seja qual for a causa, bloquear o tráfego de uma fonte específica assim que ele atinge um limite é necessário para garantir a integridade geral da API. Ao definir uma cota, você impede que um aplicativo específico afete negativamente todos os outros aplicativos que usam a API.
Nesta página, você terá uma visão geral da principal funcionalidade proporcionada pelas cotas.
As solicitações estão vinculadas ao projeto do consumidor
Depois de configurar uma cota, o Endpoints rastreia o número de solicitações por minuto e por projeto de consumidor do Google Cloud. Cada aplicativo que chama sua API precisa:
- ter um projeto do Google Cloud;
- ter ativado sua API no projeto do Google Cloud;
- enviar uma chave de API em cada solicitação à sua API. Assim, o Endpoints identifica o projeto do Google Cloud a que o aplicativo de chamada está associado e incrementa o contador de solicitações desse projeto.
Os consumidores da API podem criar os próprios projetos no Console do Google Cloud ou você pode criar os projetos para eles. Como o Endpoints impõe cotas por projeto, é preciso ter um projeto para cada consumidor da API.
Limitar o número de solicitações por minuto
Ao definir uma cota, é possível limitar o número de solicitações por minuto da API toda ou apenas de métodos específicos. Se o código do cliente de um projeto de consumidor exceder o limite que você definiu, a solicitação será rejeitada antes de chegar à API, e um código de status HTTP 429 too many
requests
(em inglês) será retornado. Nos aplicativos que fazem a chamada, será necessário processar o código de status 429
e usar a espera exponencial (em inglês) ou alguma outra lógica de nova tentativa para reduzir a taxa de chamadas à API.
Configurar uma ou mais cotas
É possível configurar uma ou mais cotas nomeadas e especificar um limite de taxa diferente para cada uma delas. Por exemplo, você pode ter alguns métodos na sua API que usam muitos recursos, como um método que executa uma consulta complexa e retorna uma grande lista de resultados, e outros que são rápidos e leves. Seu objetivo é configurar duas cotas com diferentes limites de taxa e associar os métodos que usam muitos recursos a uma cota e os leves a outra.
Configurar um custo
Ao associar um método a uma cota, você sempre especifica um custo para a solicitação. Assim, diferentes métodos podem consumir a mesma cota em taxas distintas. É possível usar os custos como alternativa para configurar diferentes cotas. Por exemplo, suponha que você configure uma cota com um limite de 1.000 solicitações por minuto. Para os métodos leves, você configura um custo de um, o que significa que os clientes podem chamar os métodos leves 1.000 vezes por minuto. Para os métodos que usam muitos recursos, você configura um custo de dois, o que significa que a cada chamada do método pelo cliente, o contador de solicitações é incrementado em dois, até atingir o limite de 1.000. Ou seja, isso limita os métodos que usam muitos recursos a 500 solicitações por minuto.
Substituir a cota configurada
A página Endpoints > Serviços exibe a cota configurada para cada método na sua API. Se necessário, substitua o limite configurado de um projeto de consumidor específico. Para fazer uma substituição, insira o número do projeto consumidor na página Endpoints > Serviços. Se você não tiver acesso ao projeto do consumidor que quer substituir, entre em contato com alguém que tenha acesso ao número do projeto.