Os limites e as cotas protegem a infraestrutura do Google de processos automatizados que usam a API Directory de maneira inadequada. O excesso de solicitações de uma API pode ser causado por um erro de digitação inofensivo ou por um sistema projetado de forma ineficiente que faz chamadas desnecessárias para a API. Seja qual for a causa, bloquear o tráfego de uma fonte específica assim que ele atinge um limite é necessário para garantir a integridade geral do sistema do Google Workspace. Elas garantem que as ações de um desenvolvedor não afetem negativamente a comunidade de modo mais amplo.
No caso improvável de falha da sua 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 de 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 do Google Cloud. | Aumente os limites por usuário na página de cotas da API Admin SDK do seu projeto do Google Cloud ou diminua o ritmo do envio de 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 de novo usando a espera exponencial. É necessário diminuir 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 de novo usando a espera exponencial. É preciso diminuir a taxa de envio das solicitações. Esse limite é por conta do Google Workspace, não por cliente da API ou por usuário. Não é possível aumentar esse limite. |
Implementação de backoff exponencial
Backoff exponencial é o processo em que um cliente repete periodicamente uma solicitação com falha por um período cada vez maior. É uma estratégia de gerenciamento de erros padrão para aplicativos de rede. Usar a espera exponencial aumenta a eficiência do uso da largura de banda, reduz o número de solicitações necessárias para receber uma resposta bem-sucedida e maximiza o rendimento de solicitações em ambientes simultâneos.
Veja a seguir o fluxo de implementação de backoff exponencial simples.
- Fazer uma solicitação para a API
- Receber uma resposta de erro que tem um código de erro passível de repetição
- Aguarde 1 segundo e
random_number_milliseconds. - Repetir a solicitação
- Receber uma resposta de erro que tem um código de erro passível de repetição
- Aguarde 2 segundos e
random_number_milliseconds. - Repetir a solicitação
- Receber uma resposta de erro que tem um código de erro passível de repetição
- Aguarde 4 segundos e
random_number_milliseconds. - Repetir a solicitação
- Receber uma resposta de erro que tem um código de erro passível de repetição
- Aguarde 8 segundos e
random_number_milliseconds. - Repetir a solicitação
- Receber uma resposta de erro que tem um código de erro passível de repetição
- Aguarde 16 segundos e
random_number_milliseconds. - 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 1.000. 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 entra em vigor somente para impedir que os clientes façam novas tentativas infinitamente e resulta em um atraso total de cerca de 32 segundos antes de uma solicitação ser considerada "um erro irrecuperável". Se necessário, o cliente da API pode implementar um número maior de tentativas.
Limites e cotas de APIs
| Categorias de limites de API | Limites |
|---|---|
| Como criar usuários | Não é possível criar mais de 10 usuários por domínio por segundo usando a API Directory. |
| Grupo adicionado como participante a outro grupo | Pode haver um atraso de até 10 minutos antes que os participantes do grupo filho apareçam como participantes do grupo principal. Esse limite pode mudar dependendo da capacidade do sistema. |
| Dispositivos móveis |
Com a API Directory, você pode realizar até:
|
| Renomear usuários | Pode levar até 10 minutos para ser propagada em todos os serviços. Antes de renomear um usuário, é recomendável fazer logout dele em todas as sessões e serviços do navegador. Para mais detalhes, consulte Atualizar usuários. |
| Criação/atualização de unidades organizacionais |
|
| Categorias de cota da API | Cotas |
Dispositivos Chrome annotatedLocation, número 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, número 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. |
| Número 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 é de 4.096. |
| Grupos por conta | Com uma conta da edição sem custo financeiro legada do G Suite, o número de grupos é limitado a 10. Outras edições não têm limite para o número de grupos. |
| Grupos, membros por grupo | Com uma conta da edição sem custo financeiro legada do G Suite, um grupo pode ter até 100 membros. Outras edições não têm limite para o número de participantes de um grupo. Para saber os limites de associação a 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 só vez | É possível mover 20 usuários de uma vez. 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 imediatamente. |
| Outros tipos de limites | Limitações e diretrizes |
|---|---|
| Faturamento e criação de usuários | Para usuários de 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ê tiver um plano flexível do Google Workspace e criar 10 usuários, sua conta vai receber cobranças por 10 licenças do Google Workspace, proporcionais ao período desde a 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 de acordo com esse compromisso. Para mais informações sobre planos de faturamento 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 aceitam 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 remove 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 da ativação do serviço do Google Workspace. Use o Google Admin Console para mudar o endereço de e-mail de um membro 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 para administradores. |
| 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 só 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-mail e Impedir que e-mails para usuários do Gmail sejam bloqueados ou enviados para a pasta "Spam" . |
| Grupos, envio de mensagens de NDR | Não é possível enviar nem encaminhar recibos de falha de envio (NDRs, na sigla em inglês), também chamados de "mensagens rejeitadas", para um grupo. |
| Grupos criados por usuários: limitações | Para limites de grupos criados por usuários, consulte a Central de Ajuda para administradores. |
| Unidade organizacional, ativando/desativando serviços | Use o Google Admin Console para gerenciar a ativação e desativação de serviços em uma unidade organizacional. |
| Senhas | Pode conter qualquer combinação de caracteres. É necessário ter no mínimo oito caracteres. O comprimento máximo é de 100 caracteres. |
| Fotos | Nesta versão da API, uma foto é a foto mais recente do perfil do Google do usuário. |
| Nomes de usuário | Os nomes de usuário podem conter letras (a-z), números (0-9), traços (-), sublinhados (_) e pontos (.). Isso não é o mesmo que no Gmail. O nome de usuário não pode conter sinal de igual (=), colchetes (<,>) ou mais de um ponto final (.) consecutivo. 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 mudança de nome. 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 e-mails em caso de configurações de encaminhamento. Ele não estará disponível como um novo nome de usuário. Para detalhes importantes sobre o impacto de renomear 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 depois de renomear. |
| 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, membros do grupo | GROUP_CANNOT_CONTAIN_CYCLE: a API não permite um ciclo em associações a grupos. Por exemplo, se o grupo1 for um participante do grupo2, o grupo2 não poderá ser um participante do grupo1. |