Como a API Google Vault é um serviço compartilhado, aplicamos cotas e limitações para garantir que ela seja usada de maneira justa por todos os usuários e para proteger a integridade geral do sistema do Google Workspace.
Limites de produtos
Não é possível ter mais de 20 exportações em andamento na sua organização.
Cotas de solicitação de API
Cada organização tem permissão de 600 leituras de casos 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ção por minuto e por projeto:
Solicitações de leitura por minuto e projeto | |
---|---|
Exportar, importar e salvar a consulta | 120 |
Colocar em espera | 228 |
Operação de longa duração | 300 |
Solicitações de gravação por minuto e projeto | |
---|---|
Exportar | 20 |
Colocar em espera | 60 |
Permissões do Matter | 30 |
Matter | 60 |
Consulta salva | 45 |
Solicitações de pesquisa (contagem) por minuto por projeto | |
---|---|
Contagens 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 casos |
matters.addPermissions matters.removePermissions
|
1 leitura de caso 1 gravação de caso 1 permissão de gravação de caso |
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 caso lido 3 leituras de retenção |
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 caso lido 1 leitura de consulta salva |
matters.savedQueries.list |
1 caso lido 3 leituras de consulta salvas |
operations.get |
1 leitura de operação de longa duração |
Resolver erros de cota com base em tempo
Se você exceder uma cota por minuto ou por organização, geralmente vai receber uma
resposta do 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 uma espera exponencial truncada para garantir que os 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 falharem, é importante que o atraso entre as solicitações aumente ao longo do tempo até que elas sejam bem-sucedidas.
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:
- Faça uma solicitação para a API Google Vault.
- Se a solicitação falhar, aguarde 1 +
random_number_milliseconds
e tente de novo. - Se a solicitação falhar, aguarde 2 +
random_number_milliseconds
e tente de novo. - Se a solicitação falhar, aguarde 4 +
random_number_milliseconds
e tente de novo. - E assim por diante, até um tempo
maximum_backoff
. - Continue aguardando e tentando até um número máximo de tentativas, mas não aumente o período de espera entre elas.
onde:
- O tempo de espera é
min(((2^n)+random_number_milliseconds), maximum_backoff)
, comn
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 derandom_number_milliseconds
é recalculado após cada solicitação de nova tentativa.maximum_backoff
costuma ser 32 ou 64 segundos. O valor apropriado 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 indefinidamente.
O tempo de espera entre novas tentativas e o número de novas tentativas dependem do caso de uso e das condições da rede.
Solicitar aumento de cota
Dependendo do uso de recursos do projeto, talvez seja necessário solicitar um aumento da cota. As chamadas de API por uma conta de serviço usam uma única conta. Solicitar uma cota maior não garante a aprovação. Grandes aumentos de cota podem levar mais tempo para serem aprovados.
Nem todos os projetos têm as mesmas cotas. À medida que você usa cada vez mais o Google Cloud, pode ser necessário aumentar as cotas. Caso espere um aumento de uso significativo, solicite o ajuste das cotas na página "Cotas" no console do Google Cloud.
Para saber mais, acesse os seguintes recursos:
- Sobre as solicitações de aumento de cota
- Ver seu uso e limites de cota atuais
- Solicitar um limite de cota maior
Preços
O uso da API Google Vault está disponível sem custo adicional para os clientes do Google Workspace.