Limites de uso

Como a API Google Vault é um serviço compartilhado, aplicamos cotas e limitações para garantir que ela seja usada de forma justa por todos os usuários e para proteger a integridade geral do sistema do Google Workspace.

Limites de produto

Não é possível ter mais do que 20 exportações em andamento na sua organização.

Cotas de solicitações de API

Cada organização pode fazer 600 leituras de materiais por minuto em todos os projetos e usuários, incluindo solicitações pela API Vault e vault.google.com.

As tabelas a seguir listam os limites de solicitações por minuto e por projeto:

Solicitações de leitura por minuto por projeto
Exportação, caso e consulta salva 120
Pausar 228
Operação de longa duração 300
Solicitações de gravação por minuto por projeto
Exportar 20
Pausar 60
Permissões do Matter 30
Matter 60
Consulta salva 45
Solicitações de pesquisa (contagem) por minuto por projeto
Contagem de pesquisas 20

Uso da cota por método

A cota usada por uma solicitação depende do método chamado. A tabela a seguir lista o uso de cota por método:

Método Custos de cota
matters.close
matters.create
matters.delete
matters.reopen
matters.update
matters.undelete
1 leitura de caso
1 gravação de caso
matters.count 1 contagem
matters.get 1 caso lido
matters.list 10 leituras de caso
matters.addPermissions
matters.removePermissions
1 leitura de assunto
1 gravação de assunto
1 gravação de permissões de assunto
matters.exports.create 1 leitura de exportação
10 gravações de exportação
matters.exports.delete 1 gravação de exportação
matters.exports.get 1 exportação lida
matters.exports.list 5 leituras de exportação
matters.holds.addHeldAccounts
matters.holds.create
matters.holds.delete
matters.holds.removeHeldAccounts
matters.holds.update
1 leitura de caso
1 gravação de caso
1 leitura de retenção
1 gravação de retenção
matters.holds.list 1 leitura de matéria
3 leituras de espera
matters.holds.accounts.create
matters.holds.accounts.delete
matters.holds.accounts.list
1 leitura de caso
1 gravação de caso
1 leitura de retenção
1 gravação de retenção
matters.savedQueries.create
matters.savedQueries.delete
1 leitura de caso
1 gravação de caso
1 leitura de consulta salva
1 gravação de consulta salva
matters.savedQueries.get 1 leitura de caso
1 leitura de consulta salva
matters.savedQueries.list 1 leitura de caso
3 leituras de consultas salvas
operations.get 1 leitura de operação de longa duração

Resolver erros de cota com base no tempo

Se você exceder uma cota por minuto ou por organização, geralmente vai receber uma resposta de código de status HTTP 429: Too many requests.

Para todos os erros baseados em tempo (máximo de N solicitações por X minutos), recomendamos que seu código capture a exceção e use um backoff exponencial truncado para garantir que seus dispositivos não gerem carga excessiva.

A espera exponencial é uma estratégia padrão de tratamento de erros para aplicativos de rede. Um algoritmo de espera exponencial repete solicitações usando tempos de espera exponencialmente crescentes entre as solicitações, até um tempo máximo de espera. Se as solicitações ainda não forem bem-sucedidas, é importante que os atrasos entre elas aumentem com o tempo até que a solicitação seja bem-sucedida.

Exemplo de algoritmo

Um algoritmo de espera exponencial repete solicitações exponencialmente, aumentando o tempo de espera entre novas tentativas até um tempo máximo de espera. Exemplo:

  1. Faça uma solicitação para a API Google Vault.
  2. Se a solicitação falhar, aguarde 1 + random_number_milliseconds e tente de novo.
  3. Se a solicitação falhar, aguarde 2 + random_number_milliseconds segundos e tente de novo.
  4. Se a solicitação falhar, aguarde 4 + random_number_milliseconds segundos e tente de novo.
  5. E assim por diante, até um tempo maximum_backoff.
  6. Continue aguardando e tentando novamente até um número máximo de novas tentativas, sem aumentar o tempo de espera entre elas.

em que:

  • O tempo de espera é min(((2^n)+random_number_milliseconds), maximum_backoff), com n incrementado em 1 para cada iteração (solicitação).
  • random_number_milliseconds é um número aleatório de milissegundos menor ou igual a 1.000. Isso ajuda a evitar casos em que muitos clientes são sincronizados por alguma situação e todos tentam novamente ao mesmo tempo, enviando solicitações em ondas sincronizadas. O valor de random_number_milliseconds é recalculado após cada nova tentativa de solicitação.
  • maximum_backoff costuma ser 32 ou 64 segundos. O valor adequado depende do caso de uso.

O cliente pode continuar tentando novamente depois de maximum_backoff. As novas tentativas após esse ponto não precisam continuar aumentando o tempo de espera. Por exemplo, se um cliente usar um tempo maximum_backoff de 64 segundos, depois de atingir esse valor, ele poderá tentar novamente a cada 64 segundos. Em algum momento, os clientes precisam ser impedidos de tentar novamente infinitas vezes.

O tempo de espera entre novas tentativas e o número de novas tentativas depende do seu caso de uso e das condições da rede.

Solicitar aumento de cota

Dependendo do uso de recursos do seu projeto, talvez seja necessário solicitar um ajuste de cota. As chamadas de API feitas por uma conta de serviço são consideradas como se usassem uma única conta. Solicitar uma cota ajustada não garante a aprovação. As solicitações de ajuste de cota que aumentam significativamente o valor da cota podem levar mais tempo para serem aprovadas.

Nem todos os projetos têm as mesmas cotas. À medida que você usa mais o Google Cloud, os valores de cota podem precisar aumentar. Caso espere um aumento de uso significativo, solicite o ajuste das cotas na página "Cotas" do console do Google Cloud.

Para saber mais, consulte os seguintes recursos:

Preços

O uso da API Google Vault está disponível sem custo adicional para clientes do Google Workspace.