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 se aplica independentemente de você usar a CLI do Google Cloud, a API REST ou as 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 anteriores 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
- Saiba como definir o projeto de cota
- Saiba mais sobre o Application Default Credentials.
- Mais informações sobre autenticação
- Entenda as cotas