Este documento descreve o projeto de quota e como é determinado o projeto de quota. Certifique-se de que o projeto de quota está definido corretamente para ajudar a evitar erros e pedidos falhados às APIs Cloud.
Tem de especificar um projeto de quota porque cada pedido a uma Google Cloud API é contabilizado em função de uma quota e porque as quotas são aplicadas por projeto. Para mais informações, consulte Como definir o projeto de quota .
Nota para utilizadores da CLI gcloud: por vezes, o projeto de quota é referido como o projeto de faturação. Isto acontece porque a billing_project
flag
tem precedência sobre a billing/quota_project
propriedade na configuração da CLI gcloud.
Como é determinado o projeto de quota
A forma como o projeto de quota é determinado depende do tipo de método da API que usa: API baseada em recursos ou API baseada no cliente. Em casos raros, um serviço pode ter ambos os tipos de métodos de API.
APIs baseadas em recursos
Para as APIs Cloud baseadas em recursos, o projeto que fornece a quota para uma chamada API é também o projeto que contém o recurso ao qual se está a aceder. Por exemplo, quando cria uma instância do Compute Engine, tem de especificar o projeto para essa nova instância. O projeto contém então a instância recém-criada. Posteriormente, se realizar operações na instância do Compute Engine, o projeto que contém a instância fornece a quota para o pedido. Isto aplica-se independentemente de usar a CLI do Google Cloud, a API REST ou as bibliotecas de cliente.
Não é possível alterar o projeto de quota usado por um pedido a uma API baseada em recursos. O pedido usa sempre o projeto que contém o recurso no qual o pedido está a operar.
APIs baseadas no cliente
Se uma API não for uma API baseada em recursos, é uma API baseada no cliente. Por exemplo, a API Cloud Translation é uma API baseada no cliente usada com frequência.
Os pedidos podem falhar se fizer um pedido a uma API baseada no cliente e não for possível identificar o projeto de quota. O projeto de quota pode ser definido de várias formas e é validado através da verificação das seguintes opções. Aparecem pela seguinte ordem de precedência:
Especificado no pedido: o projeto de quota especificado no pedido. (Quando usa bibliotecas cliente, também pode usar variáveis de ambiente nas suas solicitações.)
Chave da API: se usar uma chave da API para fornecer credenciais para um pedido, o projeto associado à chave da API é usado como o projeto de quota.
Credenciais da CLI do Google Cloud: se usar a CLI gcloud para obter o token de acesso e tiver feito a autenticação na CLI gcloud com as suas credenciais de utilizador, o projeto partilhado da CLI gcloud é, por vezes, usado como o projeto de quota. No entanto, nem todas as APIs baseadas no cliente recorrem ao projeto partilhado.
Conta de serviço: se o principal para a chamada API for uma conta de serviço, inclusive por roubo de identidade, o projeto associado à conta de serviço é usado como o projeto de quota.
Federação de identidade da força de trabalho: se o principal da API for um utilizador da federação de identidade da força de trabalho, o projeto do utilizador dos conjuntos de forças de trabalho é usado como o projeto de quota.
Se nenhuma das verificações anteriores gerar um projeto de quota, o pedido falha.
Acerca do projeto partilhado da CLI gcloud para APIs baseadas no cliente
Se usar a CLI gcloud para fazer um pedido a uma API baseada no cliente sem definir o projeto de quota, o pedido pode recorrer ao projeto partilhado da CLI gcloud ou falhar. O projeto partilhado da CLI gcloud é usado por todos os pedidos da CLI gcloud em todos os projetos. Por isso, se muitos outros pedidos da CLI gcloud também estiverem a usar este projeto como o respetivo projeto de quota, a quota do projeto partilhado pode ficar temporariamente esgotada. Se isto acontecer, o seu pedido falha com uma mensagem de erro de excesso de quota.
Identifique o projeto de quota atual para APIs baseadas no cliente
O método de identificação do projeto de quota depende da forma como o seu projeto está configurado:
Se um método da API estiver configurado para usar uma API baseada em recursos, o projeto do cliente usa o projeto de recursos como o projeto de quota.
Se existir uma substituição do projeto do utilizador, use o comando
gcloud [command] --log-http
para imprimir um registo e verifique o projeto de quota que aparece no campox-goog-user-project
.Se foi usada uma chave da API para a autenticação, use o comando
gcloud [command] --log-http
para imprimir um registo e verifique o projeto de quota que aparece no campox-goog-api-key
.
Para outras configurações, o projeto de quota não aparece nos cabeçalhos HTTP.
Determine se uma API é baseada em recursos ou em clientes
Pode ser difícil determinar que tipo de API está a usar. No entanto, a ativação e as quotas são aplicadas da mesma forma. Por exemplo, se uma conta de serviço do projeto A chamar um método de leitura no projeto B e nenhum dos projetos tiver a API ativada, a mensagem de erro API not enabled
indica qual o projeto cuja ativação é verificada. O projeto verificado para ativação é o mesmo projeto verificado para a quota de taxa.
O que se segue?
Saiba como definir o projeto de quota
Saiba mais sobre as credenciais padrão da aplicação
Veja mais informações sobre a autenticação
Compreenda as quotas
Para utilizadores da CLI gcloud:
- Para mais informações sobre as configurações da CLI gcloud, consulte a
gcloud config
documentação de referência - Para mais informações acerca da flag
--billing_project
, consulte a referência do SDK do Google Cloud
- Para mais informações sobre as configurações da CLI gcloud, consulte a