A API Cloud Quotas permite que você ajuste programaticamente cotas em nível de projeto e automatize solicitações de ajuste de cotas em nível de projeto. Por exemplo, é possível usar a API Cloud Quotas para:
Automatizar ajustes de cota: use a API Cloud Quotas para solicitar ajustes de cota com base nos seus próprios critérios. Por exemplo, para evitar erros de cota excedida, você pode usar a API para solicitar programaticamente um ajuste de cota quando os recursos do Compute Engine atingirem 80% da cota disponível.
Reutilizar configurações de cota em projetos: a API Cloud Quotas pode clonar suas configurações de cota de projeto em projeto. Se houver um conjunto conhecido de cotas que precisam ser aumentadas para cada novo projeto do Google Cloud, você poderá usar a API Cloud Quotas para automatizar isso na lógica de criação do seu projeto. As solicitações de ajuste de cota estão sujeitas à aprovação do Google Cloud.
Atender às solicitações de cota do cliente: se você for um provedor de SaaS integrado ao Google Cloud, poderá receber solicitações de aumento de cota por um portal voltado para o cliente que não seja o console do Google Cloud. Essas solicitações precisam ser encaminhadas ao Google Cloud para processamento. A API Cloud Quotas pode encaminhar automaticamente as solicitações dos clientes.
Ativar o controle de versão da configuração do cliente: a API Cloud Quotas é declarativa. É possível tratar as configurações de cota como código e armazenar as configurações no seu próprio sistema controlado por versão para fins de histórico e reversão.
Limitações
As cotas do Cloud têm as seguintes limitações:
Os ajustes de aumento de cota precisam ser feitos no nível do projeto e estão sujeitos à aprovação do Google Cloud.
É possível solicitar ajustes de diminuição de cota para project-, folder- e as cotas no nível da organização.
A API Cloud Quotas é compatível apenas com operações no nível do projeto. Operações em nível de pasta e organização não são compatíveis.
Endpoint de serviço
Um endpoint de serviço é um URL base que especifica o endereço de rede de um serviço de API. Um serviço pode ter vários endpoints. O serviço da API Cloud Cotas tem o endpoint a seguir e todos os URIs são relacionados a ele:
https://cloudquotas.googleapis.com
Funções exigidas
Para ter as permissões necessárias para acessar os recursos cloudquotas_quotaPreferences
e cloudquotas_quotaInfos
,
peça ao administrador para conceder a você o
Administrador de cotas do Cloud (cloudquotas.admin
)
no projeto.
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Esse papel predefinido contém
as permissões necessárias para acessar os recursos cloudquotas_quotaPreferences
e cloudquotas_quotaInfos
. Para acessar as permissões exatas necessárias, expanda a seção Permissões necessárias:
Permissões necessárias
As permissões a seguir são necessárias para acessar os recursos cloudquotas_quotaPreferences
e cloudquotas_quotaInfos
:
-
cloudquotas.quotas.update
-
cloudquotas.quotas.get
-
monitoring.timeSeries.list
-
resourcemanager.projects.get
-
resourcemanager.projects.list
Essas permissões também podem ser concedidas com funções personalizadas ou outros papéis predefinidos.
Modelo de recurso de API
O modelo de recursos da API Cloud Cotas consiste em dois recursos: QuotaPreference
e QuotaInfo
.
Preferência de cota
O recurso QuotaPreference
representa sua preferência de cota por uma determinada
combinação de dimensões. Use esse recurso para ajustar as cotas nos seus projetos, pastas ou organizações.
Definir um valor preferencial para uma região
O exemplo a seguir mostra um recurso QuotaPreference
em um
método CreateQuotaPreference
.
{ "service": "compute.googleapis.com", "quotaId": "GPUS-PER-GPU-FAMILY-per-project-region", "quotaConfig": { "preferredValue": 100 }, "dimensions": { "region": "us-central1" } }
O preferredValue
de 100 indica que o solicitante quer que a cota GPUS-PER-GPU-FAMILY-per-project-region
seja definida como esse valor. O campo de dimensões indica que a preferência se aplica apenas à região us-central1
.
Verificar o valor concedido
O exemplo a seguir mostra um recurso QuotaPreference
em um
método GetQuotaPreference
.
{ "name": "projects/PROJECT_NUMBER/locations/global/quotaPreferences/compute_googleapis_com-gpus-us-central1", "service": "compute.googleapis.com", "quotaId": "GPUS-PER-GPU-FAMILY-per-project-region", "quotaConfig": { "preferredValue": 100, "grantedValue": 100, "traceId": "123acd-345df23", "requestOrigin": "ORIGIN_UNSPECIFIED" }, "dimensions": { "region": "us-central1" }, "createTime": "2023-01-15T01:30:15.01Z", "updateTime": "2023-01-16T02:35:16.01Z" }
Esta saída inclui os seguintes valores:
PROJECT_NUMBER
: um identificador exclusivo gerado automaticamente para seu projeto.
A resposta mostra um grantedValue
de 100, o que significa
que o preferredValue
do exemplo anterior foi aprovado e atendido.
As preferências para dimensões diferentes são recursos QuotaPreference
diferentes. Por exemplo, QuotaPreference
para CPU nas regiões us-central1
e
us-east1
são dois recursos distintos.
A preferência de cota é obrigatória
Os recursos de QuotaPreference
são usados para indicar o valor preferido de uma
cota específica. O valor atual de uma cota específica é baseado em:
QuotaPreference
solicitações feitas por você.Solicitações de aumento de cota aprovadas pelo Google Cloud.
Mudanças nas cotas iniciadas pelo Google Cloud.
Não há suporte para a capacidade de excluir um QuotaPreference
. No entanto, é possível definir
um valor de cota preferencial menor que o aprovado pelo Google Cloud para adicionar mais proteções.
Para mais informações sobre o recurso QuotaPreference
, consulte a Referência da API Cloud Cotas.
Para mais informações sobre as consultas QuotaPreference
, acesse
Implementar casos de uso comuns.
Informações de cota
QuotaInfo
é um recurso somente leitura que fornece informações sobre uma cota
específica para um determinado projeto, pasta ou organizações. Ela exibe informações das cotas definidas pelos serviços do Google Cloud e quaisquer ajustes de cotas iniciados pelos clientes. O recurso QuotaInfo
contém informações como metadados, tipo de contêiner e dimensão.
Definir valores de cota diferentes por região
O exemplo de recurso QuotaInfo
a seguir mostra que a cota de CPU para o
projeto é de 200 para a região us-central1
e 100 para todas as outras regiões.
{ "name": "projects/PROJECT_NUMBER/locations/global/services/compute.googleapis.com/quotaInfos/CPUS-per-project-region", "quotaId": "CPUS-per-project-region", "metric": "compute.googleapis.com/cpus", "containerType": "PROJECT", "dimensions": [ "region" ], "isPrecise": true, "quotaDisplayName": "CPUs per project per region", "metricDisplayName": "CPUs", "dimensionsInfo": [ { "dimensions": { "region": "us-central1" }, "details": { "quotaValue": 200, "resetValue": 200 }, "applicableLocations": [ "us-central1", ] }, { "details": { "quotaValue": 100, "resetValue": 100 }, "applicableLocations": [ "us-central2", "us-west1", "us-east1" ] } ] }
Esta saída inclui os seguintes valores:
PROJECT_NUMBER
: um identificador exclusivo gerado automaticamente para seu projeto.
Definir uma cota global
O exemplo de recurso QuotaInfo
a seguir mostra uma cota de taxa com um intervalo de atualização
por minuto. As dimensões estão em branco, o que indica que essa é uma
cota global. Todas as cotas sem dimensão de região ou zona são globais.
{ "name": "projects/PROJECT_NUMBER/locations/global/services/compute.googleapis.com/quotaInfos/ReadRequestsPerMinutePerProject", "quotaId": "ReadRequestsPerMinutePerProject", "metric": "compute.googleapis.com/read_requests", "refreshInterval": "minute", "containerType": "PROJECT", "dimensions": [], "isPrecise": false, "quotaDisplayName": "Read Requests per Minute", "metricDisplayName": "Read Requests", "dimensionsInfo": [ { "details": { "quotaValue": 100, "resetValue": 200 }, "applicableLocations": [ "global" ] } ] }
Esta saída inclui os seguintes valores:
PROJECT_NUMBER
: um identificador exclusivo gerado automaticamente para seu projeto.
Para mais detalhes sobre o recurso QuotaInfo
, consulte a Referência da API Cloud Cotas.
Para mais detalhes sobre as consultas QuotaPreference
, consulte
Implementar casos de uso comuns.
Nomes de recursos
Recursos são entidades nomeadas e são identificados por nomes de recursos. Os nomes dos recursos são usados em todas as solicitações e respostas, e cada recurso precisa ter o próprio nome exclusivo. Cada nome de recurso é codificado por um conjunto de campos.
Recurso de preferência de cota
A convenção de nomenclatura para um recurso QuotaPreference
usa o seguinte padrão:
projects/PROJECT_NUMBER/locations/global/quotaPreferences/QUOTA_PREFERENCE_ID
É possível definir quotaPreferenceId
ao criar uma preferência de cota. Caso contrário, um ID será gerado. É recomendável que um esquema de nomenclatura quotaPreferenceId
codifique o nome do serviço, o ID da cota, o local e outras dimensões. O
quotaPreferenceId
precisa ser exclusivo para o projeto, a pasta ou as organizações.
Por exemplo, quotaPreference
Este é um padrão para codificar seu ID de preferência de cota:
SERVICE_LOCATION_DIMENSION1-VALUES-IN-ORDER
O exemplo abaixo demonstra esse padrão.
compute_us-central1_nvidia-200
Com um nome de recurso, use o método GET
para extrair um
QuotaPreference
. Você também pode chamar o método UPDATE
com a opção allow_missing
ativada para criar ou atualizar um QuotaPreference
.
Recurso de informações de cota
A convenção de nomenclatura para um recurso QuotaInfo
usa o seguinte padrão:
projects/PROJECT_NUMBER/locations/global/services/SERVICE_NAME/quotaInfos/QUOTA_ID
A seguir
Referência da API Cloud Cotas
Entenda as cotas