Os limites e as cotas protegem a infraestrutura do Google contra um processo automatizado que usa a API Directory de maneira inadequada. Solicitações excessivas de uma API podem ser resultado de um erro de digitação inofensivo ou de um sistema projetado de forma ineficiente que faz chamadas de API desnecessárias. Independentemente da causa, bloquear o tráfego de uma origem específica quando ele atinge um determinado nível é necessário para a integridade geral do sistema do Google Workspace. Isso garante que as ações de um desenvolvedor não afetem negativamente a comunidade em geral.
No caso improvável de falha na solicitação de API, a API retorna um código de status HTTP e o motivo do erro. Além disso, o corpo da resposta contém uma descrição detalhada do que causou o erro.
A lista a seguir mostra os possíveis códigos do erro, motivos, descrições correspondentes e ações recomendadas para erros causados por limites de cota atingidos.
| Código | Motivo | Descrição | Ação recomendada |
|---|---|---|---|
| 403 | userRateLimitExceeded | Indica que o limite da taxa de usuário foi ultrapassado. O valor padrão definido no console do Google Cloud é de 2.400 consultas por minuto por usuário por projeto na nuvem do Google Cloud. | Aumente os limites por usuário na página de cotas da API SDK Admin do seu projeto na nuvem do Google Cloud ou reduza a taxa de envio das solicitações usando a espera exponencial. |
| 403 | quotaExceeded | Indica que o limite de solicitações simultâneas para uma determinada operação foi atingido. | Tente novamente usando a espera exponencial. É preciso reduzir a taxa de envio das solicitações. |
| 429 | rateLimitExceeded | Indica que o limite de solicitações simultâneas para uma determinada operação foi atingido. | Tente novamente usando a espera exponencial. É preciso reduzir a taxa de envio das solicitações. Esse limite é por conta do Google Workspace, não por cliente de API ou por usuário. Não é possível aumentar esse limite. |
Como implementar espera exponencial
A espera exponencial é o processo em que um cliente repete periodicamente uma solicitação com falha ao longo de um período crescente. É uma estratégia de gerenciamento de erros padrão para aplicativos de rede. O uso da espera exponencial aumenta a eficiência do uso da largura de banda, reduz o número de solicitações necessárias para conseguir uma resposta bem-sucedida e maximiza a capacidade de solicitações em ambientes simultâneos.
O fluxo para implementação da espera exponencial simples é o seguinte.
- Fazer uma solicitação para a API
- Receber uma resposta de erro com um código do erro que pode ser repetido
- Aguarde 1s +
random_number_millisecondssegundos - Repetir a solicitação
- Receber uma resposta de erro com um código do erro que pode ser repetido
- Aguarde 2 segundos +
random_number_millisecondssegundos - Repetir a solicitação
- Receber uma resposta de erro com um código do erro que pode ser repetido
- Aguarde 4s +
random_number_millisecondssegundos - Repetir a solicitação
- Receber uma resposta de erro com um código do erro que pode ser repetido
- Aguarde 8s +
random_number_millisecondssegundos - Repetir a solicitação
- Receber uma resposta de erro com um código do erro que pode ser repetido
- Aguarde 16s +
random_number_millisecondssegundos - Repetir a solicitação
- Se você continuar recebendo um erro, pare e registre-o.
No fluxo acima, random_number_milliseconds é um número aleatório de milissegundos inferior ou igual a mil. Ele é necessário para evitar determinados erros de bloqueio em algumas implementações simultâneas.
É preciso redefinir o random_number_milliseconds após cada espera.
Observação: o período de espera sempre é
(2 ^ n) + random_number_milliseconds, em que
n é um número inteiro monotonicamente crescente, definido inicialmente
como 0. n é incrementado em 1 para cada iteração (cada solicitação).
O algoritmo é definido para terminar quando n é 5. Esse limite existe apenas para impedir que os clientes tentem infinitamente e resulta em um atraso total de cerca de 32 segundos antes que uma solicitação seja considerada "um erro irrecuperável". Seu cliente de API pode implementar um número maior de tentativas, se necessário.
Limites e cotas da API
| Categorias de limite da API | Limites |
|---|---|
| Criar usuários | Não é possível criar mais de 10 usuários por domínio por segundo usando a API Directory. |
| Excluir usuários | É possível excluir até cinco usuários por domínio por segundo usando a API Directory. Esse é um limite de serviço de back-end por domínio que não pode ser ajustado nas cotas do projeto do console do Google Cloud. Ao enviar solicitações em lote, verifique se o total de operações em todos os lotes permanece abaixo de 5 consultas por segundo (QPS). |
| Como excluir membros do grupo | É possível excluir até 30 participantes de grupos por domínio por segundo usando a API Directory. Esse é um limite de serviço de back-end por domínio que não pode ser ajustado nas cotas do projeto do console do Google Cloud. Ao enviar solicitações em lote, verifique se o total de operações em todos os lotes permanece abaixo de 30 consultas por segundo (QPS). |
| Grupo adicionado como participante de outro grupo | Pode haver um atraso de até 10 minutos antes que os participantes do grupo filho apareçam como participantes do grupo pai. Esse limite pode mudar dependendo da capacidade do sistema. |
| Dispositivos móveis |
Com a API Directory, é possível realizar até:
|
| Renomear usuários | Pode levar até 10 minutos para se propagar em todos os serviços. Antes de renomear um usuário, é recomendável desconectá-lo de todas as sessões e serviços do navegador. Veja mais detalhes em Atualizar usuários. |
| Criar/atualizar unidades organizacionais |
|
| Categorias de cota da API | Cotas |
Dispositivos Chrome annotatedLocation, máximo de caracteres
|
O número máximo de caracteres para as informações de localização de um dispositivo é 200. |
Dispositivos Chrome notes, máximo de caracteres
|
O número máximo de caracteres para as informações de observações de um dispositivo é 500. |
Dispositivos Chrome, máximo de user caracteres
|
O número máximo de caracteres para o nome de um usuário do dispositivo é 100. |
| Máximo de aliases de domínio | O número máximo de aliases de domínio é 20. |
| Grupos, descrição | O número máximo de caracteres em uma descrição é 4.096. |
| Grupos por conta | Com uma conta da edição legada sem custo financeiro do G Suite, o número de grupos é limitado a 10. As outras edições não têm limite para o número de grupos. |
| Grupos, participantes por grupo | Com uma conta da edição legada sem custo financeiro do G Suite, um grupo pode ter até 100 participantes. As outras edições não têm limite para o número de participantes de um grupo. Para saber os limites de participação em grupos por usuário, consulte Entender as políticas e os limites do Grupos. |
| String de consulta maxResults | A API retorna:
|
| Vários domínios, número máximo de domínios permitidos em uma conta | 600 (1 domínio principal + 599 domínios adicionais) |
| Unidade organizacional, número máximo de usuários movidos de uma vez | É possível mover 20 usuários de uma vez. Além disso, os endereços de e-mail principais do usuário já precisam existir na conta. |
| Aliases de usuário | O número total de aliases permitidos para cada conta de usuário é 30. |
| Aliases de usuário, usando um alias excluído | Um alias de usuário excluído pode ser usado novamente de imediato. |
| Outros tipos de limites | Limitações e diretrizes |
|---|---|
| Faturamento e criação de usuários | Para usuários em um plano flexível do Google Workspace, a criação de usuários usando essa API terá um impacto financeiro e resultará em cobranças na conta de faturamento do cliente. Por exemplo, se você estiver em um plano flexível do Google Workspace, a criação de 10 usuários vai resultar em cobranças de 10 licenças do Google Workspace na sua conta, proporcionais ao tempo de criação. Se você tem um plano anual, já se comprometeu a pagar por um determinado número de licenças antecipadamente e só pode criar o número de usuários que definiu. Para mais informações sobre os planos e sua conta de faturamento, consulte a Central de Ajuda para administradores. |
| Nome e sobrenome | O nome e o sobrenome podem ter no máximo 40 caracteres. Eles são compatíveis com caracteres Unicode/UTF-8 e podem conter espaços, letras (a-z), números (0-9), traços (-), barras (/) e pontos (.). Para mais informações sobre as regras de uso de caracteres, consulte a Central de Ajuda para administradores. |
| Grupos, exclusão | A exclusão de um grupo não exclui as contas de usuário dos participantes. |
| Grupos e participantes de grupos, mudança de endereço de e-mail | Nesta versão da API, o endereço de e-mail de um grupo pode ser alterado antes que o serviço do Google Workspace seja ativado. Use o Google Admin Console para mudar o endereço de e-mail de um participante do grupo. Depois de alterado, a API reflete automaticamente as mudanças no endereço de e-mail. |
| Grupos, configurações | As configurações de acesso, as opções de compartilhamento, o monitoramento e o arquivo de discussões dos grupos são gerenciados no Google Admin Console. Para mais informações sobre as configurações de grupos, consulte a Central de Ajuda de administração. |
| Grupos, envio de mensagens | Para evitar spam e abuso de e-mail, o Google limita o número de mensagens que você pode enviar de uma vez para destinatários externos. Se você enviar uma mensagem para um grupo, cada participante externo será contado como um destinatário. Para mais informações, consulte Limites de envio de e-mails e Impedir que e-mails para usuários do Gmail sejam bloqueados ou enviados para a pasta de spam. |
| Grupos, envio de mensagens de NDR | Não é possível enviar ou encaminhar recibos de falha de envio (NDRs, na sigla em inglês), também chamados de "mensagens de erro na entrega", para um grupo. |
| Grupos criados por usuários, limitações | Para saber os limites de grupos criados por usuários, consulte a Central de Ajuda para administradores. |
| Unidade organizacional, ativação/desativação de serviços | Use o Google Admin Console para ativar e desativar serviços em uma unidade organizacional. |
| Senhas | Pode conter qualquer combinação de caracteres. É necessário ter pelo menos 8 caracteres. O comprimento máximo é de 100 caracteres. |
| Fotos | Nesta versão da API, uma foto é a foto do perfil do Google mais recente do usuário. |
| Nomes de usuário | Os nomes de usuário podem conter letras (a-z), números (0-9) e traços (-), e o Google Workspace reconhece pontos (.). Isso é diferente do Gmail. Um nome de usuário não pode conter um sinal de igual (=), colchetes (<,>) ou mais de um ponto (.) em uma linha. Para mais informações, consulte a Central de Ajuda para administradores. |
| Nomes de usuário, renomeação | O Google Hangouts descarta todos os convites de chat lembrados após a renomeação. O usuário precisa pedir permissão para conversar com amigos novamente. O nome de usuário antigo é mantido como um alias de e-mail para garantir a entrega contínua de mensagens no caso de configurações de encaminhamento de e-mail e não estará disponível como um novo nome de usuário. Para detalhes importantes sobre o impacto da renomeação de usuários, consulte a Central de Ajuda para administradores. Use a operação Excluir o alias de um usuário para remover o alias de e-mail após a renomeação. |
| Usuários em vários domínios | Uma conta do Google Workspace pode incluir qualquer um dos seus domínios. Em uma conta com vários domínios, os usuários de um domínio podem compartilhar serviços com usuários de outros domínios da conta. Os componentes de vários domínios são:
|
| Avisos, participantes do grupo | GROUP_CANNOT_CONTAIN_CYCLE: a API não permite um ciclo nas associações de grupos. Por exemplo, se o grupo1 for um participante do grupo2, o grupo2 não poderá ser um participante do grupo1. |