Visão geral do projeto de cotas

Nesta página, definimos o uso do projeto de cota e como ele é determinado. Garantir que seu projeto de cota esteja definido corretamente pode ajudar você a evitar solicitações com falha para as APIs do Google Cloud e erros de cota desnecessários.

Cada solicitação a uma API do Google Cloud é contabilizada em uma cota. Como as cotas são aplicadas em cada projeto, isso significa que todas as solicitações precisam de um projeto para fornecer cota. Esse projeto é chamado de projeto de cota. Às vezes, ele também é chamado de projeto de faturamento. O projeto de faturamento e o de cota são o mesmo. Para saber mais, consulte Como definir o projeto de cota.

Como o projeto de cota é determinado

A forma como o projeto de cota é determinado depende do tipo de API que você usa: API baseada em recursos ou API baseada no cliente.

APIs baseadas em recursos

Para APIs do Google Cloud com base em recursos, o projeto que fornece cota para uma chamada de API também é aquele que contém o recurso que está sendo acessado. Por exemplo, ao criar uma instância do Compute Engine, especifique o projeto dela. O projeto contém a instância recém-criada. Depois, se você executar operações na instância do Compute Engine, o projeto que contém a instância fornecerá a cota para a solicitação. Isso é válido para quem usa a CLI do Google Cloud, REST ou bibliotecas de cliente.

Não é possível alterar o projeto de cota usado por uma solicitação para uma API baseada em recursos. A solicitação sempre usa o projeto que contém o recurso em que a solicitação está operando.

APIs baseadas em cliente

Caso a API não seja baseada em recursos, trata-se de uma API baseada em cliente. Por exemplo, a API Cloud Translation é uma API baseada em cliente usada com frequência.

Ao fazer uma solicitação a uma API baseada em cliente, se não for possível identificar um projeto de cota, a solicitação falhará.

O projeto de cota pode ser definido de várias maneiras e será verificado nas opções a seguir. A ordem listada é a da precedência.

  • O projeto de cota definido no ambiente ou na solicitação.
  • Se você usar uma chave de API para fornecer credenciais de uma solicitação, o projeto associado a ela será usado como o projeto de cota.
  • Se você usa a CLI do Google Cloud para receber o token de acesso e fez a autenticação na CLI gcloud com suas credenciais de usuário, o projeto compartilhado da CLI gcloud às vezes é usado como o projeto de cota. Nem todas as APIs baseadas em cliente recorrem ao projeto compartilhado.
  • Se o principal da chamada de API for uma conta de serviço, inclusive por representação, o projeto associado à conta de serviço será usado como o projeto de cota.
  • Se o principal da API for um usuário da federação de identidade de colaboradores, o projeto de usuário dos pools de força de trabalho será usado como o projeto de cota.

Se nenhuma das verificações acima resultar em um projeto de cota, a solicitação falhará.

Sobre o projeto compartilhado da CLI gcloud para APIs baseadas em cliente

Se você usar a CLI gcloud para fazer uma solicitação a uma API baseada em cliente sem definir o projeto de cota, a solicitação poderá recorrer ao projeto compartilhado da CLI gcloud ou a solicitação poderá falhar. O projeto compartilhado da CLI gcloud é usado por todas as solicitações da CLI gcloud em todos os projetos. Portanto, se muitas outras solicitações da CLI gcloud também estiverem usando esse projeto como projeto de cota, a cota do projeto compartilhado poderá ser temporariamente esgotada. Se isso acontecer, sua solicitação vai falhar com uma mensagem de erro fora da cota.

Identificar o projeto de cota atual para APIs baseadas em cliente

Para identificar o projeto usado para um comando da CLI gcloud, inclua a flag --log-http com a CLI gcloud para imprimir os cabeçalhos do comando. O registro inclui o projeto usado para esse comando como o projeto de cota no campo X-Goog-User-Project.

Determinar se uma API é baseada em recursos ou no cliente

Pode ser difícil determinar que tipo de API você está usando. No entanto, a ativação e a cota são aplicadas da mesma maneira. Se uma conta de serviço do projeto A chamar um método de leitura no projeto B e a API não estiver ativada em nenhum dos projetos, a mensagem de erro API not enabled indicará qual projeto será verificado para ativação. O projeto verificado para ativação é o mesmo que foi verificado quanto à cota de taxa.

A seguir