I limiti e le quote proteggono l'infrastruttura di Google da un processo automatizzato che utilizza l'API Directory in modo inappropriato. Le richieste eccessive da un'API potrebbero essere dovute a un innocuo errore di battitura o a un sistema progettato in modo inefficiente che effettua chiamate API non necessarie. Indipendentemente dalla causa, bloccare il traffico proveniente da una fonte specifica una volta raggiunto un determinato livello è necessario per l'integrità complessiva del sistema Google Workspace. In questo modo, le azioni di un singolo sviluppatore non possono avere un impatto negativo sulla community più ampia.
Nell'improbabile caso in cui la richiesta API non vada a buon fine, l'API restituisce un codice di stato HTTP e il motivo dell'errore. Inoltre, il corpo della risposta contiene una descrizione dettagliata della causa dell'errore.
Il seguente elenco mostra i possibili codici di errore, i motivi, le descrizioni corrispondenti e il comportamento consigliato per gli errori causati dal raggiungimento dei limiti di quota.
| Codice | Motivo | Descrizione | Azione consigliata |
|---|---|---|---|
| 403 | userRateLimitExceeded | Indica che il limite di frequenza per utente è stato superato. Il valore predefinito impostato nella console Google Cloud è 2400 query al minuto per utente per progetto cloud Google Cloud. | Aumenta i limiti per utente dalla pagina Quote dell'API SDK Admin del tuo progetto cloud Google Cloud oppure rallenta la frequenza di invio delle richieste utilizzando il backoff esponenziale. |
| 403 | quotaExceeded | Indica che è stato raggiunto il limite di richieste in parallelo per una determinata operazione. | Riprova utilizzando il backoff esponenziale. Devi ridurre la frequenza di invio delle richieste. |
| 429 | rateLimitExceeded | Indica che è stato raggiunto il limite di richieste in parallelo per una determinata operazione. | Riprova utilizzando il backoff esponenziale. Devi ridurre la frequenza di invio delle richieste. Questo limite si applica per account Google Workspace, non per client API o per utente. Questo limite non può essere aumentato. |
Implementazione del backoff esponenziale
Backoff esponenziale è il processo mediante il quale un client tenta periodicamente di ritentare una richiesta fallita in un intervallo di tempo crescente. Si tratta di una strategia di gestione degli errori standard per le applicazioni di rete. L'utilizzo del backoff esponenziale aumenta l'efficienza dell'utilizzo della larghezza di banda, riduce il numero di richieste necessarie per ottenere una risposta corretta e massimizza la velocità effettiva delle richieste in ambienti simultanei.
Il flusso per l'implementazione del backoff esponenziale semplice è il seguente.
- Effettua una richiesta all'API
- Ricevi una risposta di errore con un codice di errore ripetibile
- Attendi 1 s +
random_number_millisecondssecondi - Riprova a inviare la richiesta
- Ricevi una risposta di errore con un codice di errore ripetibile
- Attendi 2 s +
random_number_millisecondssecondi - Riprova a inviare la richiesta
- Ricevi una risposta di errore con un codice di errore ripetibile
- Attendi 4 s +
random_number_millisecondssecondi - Riprova a inviare la richiesta
- Ricevi una risposta di errore con un codice di errore ripetibile
- Attendi 8 s +
random_number_millisecondssecondi - Riprova a inviare la richiesta
- Ricevi una risposta di errore con un codice di errore ripetibile
- Attendi 16 s +
random_number_millisecondssecondi - Riprova a inviare la richiesta
- Se l'errore persiste, interrompi l'operazione e registra l'errore.
Nel flusso precedente, random_number_milliseconds è un numero casuale di millisecondi minore o uguale a 1000. Questo è necessario per evitare determinati errori di blocco in alcune implementazioni concorrenti.
random_number_milliseconds deve essere ridefinito dopo ogni attesa.
Nota: l'attesa è sempre
(2 ^ n) + random_number_milliseconds, dove
n è un numero intero che aumenta di un'unità alla volta, inizialmente definito
come 0. n viene incrementato di 1 per ogni iterazione (ogni richiesta).
L'algoritmo è impostato per terminare quando n è 5. Questo limite viene applicato solo per impedire ai client di riprovare all'infinito e comporta un ritardo totale di circa 32 secondi prima che una richiesta venga considerata un "errore irreversibile". Se necessario, il client API può implementare un numero maggiore di tentativi.
Limiti e quote dell'API
| Categorie di limiti API | Limiti |
|---|---|
| Creazione degli utenti | Non puoi creare più di 10 utenti per dominio al secondo utilizzando l'API Directory. |
| Eliminazione di utenti | Puoi eliminare fino a 5 utenti per dominio al secondo utilizzando l'API Directory. Questo è un limite di servizi di backend per dominio che non può essere modificato nelle quote di progetto della console Google Cloud. Quando invii richieste batch, assicurati che le operazioni totali nei batch rimangano al di sotto di 5 query al secondo (QPS). |
| Eliminazione dei membri del gruppo | Puoi eliminare fino a 30 membri del gruppo per dominio al secondo utilizzando l'API Directory. Questo è un limite di servizi di backend per dominio che non può essere modificato nelle quote di progetto della console Google Cloud. Quando invii richieste batch, assicurati che le operazioni totali tra i batch rimangano al di sotto di 30 query al secondo (QPS). |
| Gruppo aggiunto come membro a un altro gruppo | Potrebbe verificarsi un ritardo fino a 10 minuti prima che i membri del gruppo secondario vengano visualizzati come membri del gruppo principale. Questo limite potrebbe cambiare a seconda della capacità del sistema. |
| Dispositivi mobili |
Utilizzando l'API Directory, puoi eseguire fino a:
|
| Ridenominazione degli utenti | La propagazione in tutti i servizi può richiedere fino a 10 minuti. Prima di rinominare un utente, ti consigliamo di disconnetterlo da tutte le sessioni e i servizi del browser. Per maggiori dettagli, vedi Aggiorna gli utenti. |
| Creazione/aggiornamento delle unità organizzative |
|
| Categorie di quote API | Quote |
Dispositivi Chrome annotatedLocation, numero massimo di caratteri
|
Il numero massimo di caratteri per i dati sulla posizione di un dispositivo è 200. |
Dispositivi Chrome notes, numero massimo di caratteri
|
Il numero massimo di caratteri per le note di un dispositivo è 500. |
Dispositivi Chrome, massimo user caratteri
|
Il numero massimo di caratteri per il nome di un utente del dispositivo è 100. |
| Alias di dominio, massimo | Il numero massimo di alias di dominio è 20. |
| Gruppi, descrizione | Il numero massimo di caratteri in una descrizione è 4096. |
| Gruppi per account | Con un account della versione precedente senza costi di G Suite, il numero di gruppi è limitato a 10. Le altre versioni non hanno limiti per il numero di gruppi. |
| Gruppi, membri per gruppo | Con un account della versione precedente senza costi di G Suite, un gruppo può contenere fino a 100 membri. Altre versioni non prevedono limiti al numero di membri che un gruppo può avere. Per i limiti di appartenenza ai gruppi per utente, consulta Informazioni sui criteri e i limiti di Gruppi. |
| Stringa di query maxResults | L'API restituisce:
|
| Più domini, numero massimo di domini consentiti in un account | 600 (1 dominio principale + 599 domini aggiuntivi) |
| Unità organizzativa, numero massimo di utenti spostati contemporaneamente | È possibile spostare 20 utenti alla volta. Inoltre, gli indirizzi email principali degli utenti devono già esistere nell'account. |
| Alias utente | Il numero totale di alias consentiti per ogni account utente è 30. |
| Alias utente, utilizzando un alias eliminato | Un alias utente eliminato può essere riutilizzato immediatamente. |
| Altri tipi di limiti | Limitazioni e linee guida |
|---|---|
| Fatturazione e creazione di utenti | Per gli utenti con un piano flessibile per Google Workspace, la creazione di utenti tramite questa API avrà un impatto monetario e comporterà addebiti sull'account di fatturazione del cliente. Ad esempio, se hai un piano flessibile per Google Workspace, la creazione di 10 utenti comporterà l'addebito sul tuo account di 10 licenze Google Workspace, proporzionalmente al momento della creazione. Se hai un piano annuale, ti sei già impegnato a pagare un determinato numero di licenze in anticipo e puoi creare solo il numero di utenti previsto dal tuo impegno. Per ulteriori informazioni sui piani di fatturazione e sul tuo account di fatturazione, consulta il Centro assistenza per l'amministrazione. |
| Nome e cognome | I nomi e i cognomi possono contenere un massimo di 40 caratteri. Supportano i caratteri Unicode/UTF-8 e possono contenere spazi, lettere (a-z), numeri (0-9), trattini (-), barre (/) e punti (.). Per ulteriori informazioni sulle regole di utilizzo dei caratteri, consulta il Centro assistenza per l'amministrazione. |
| Gruppi, eliminazione | L'eliminazione di un gruppo non comporta l'eliminazione degli account utente dei membri del gruppo. |
| Gruppi e membri dei gruppi, modifica dell'indirizzo email | In questa versione dell'API, l'indirizzo email di un gruppo può essere modificato prima dell'attivazione del servizio Google Workspace. Utilizza la Console di amministrazione Google per modificare l'indirizzo email di un membro del gruppo. Una volta modificato, l'API riflette automaticamente le modifiche all'indirizzo email. |
| Gruppi, impostazioni | Le impostazioni di accesso, le opzioni di condivisione, il monitoraggio e l'archivio delle discussioni di Groups vengono gestiti utilizzando la Console di amministrazione Google. Per saperne di più sulle impostazioni dei gruppi, consulta il Centro assistenza per l'amministrazione. |
| Gruppi, invio di messaggi | Per impedire la ricezione di spam e l'utilizzo improprio dell'email, Google limita il numero di messaggi che puoi inviare contemporaneamente a destinatari esterni. Se invii un messaggio a un gruppo, ogni membro esterno viene conteggiato come un destinatario. Per saperne di più, vedi Limiti di invio delle email e Impedisci che la posta indirizzata agli utenti Gmail venga bloccata o finisca nello Spam. |
| Gruppi, invio di messaggi NDR | Non puoi inviare né inoltrare a un gruppo le notifiche di mancato recapito, dette anche "avvisi di mancato recapito". |
| Limitazioni dei gruppi creati dagli utenti | Per i limiti dei gruppi creati dagli utenti, consulta il Centro assistenza per gli amministratori. |
| Unità organizzativa, attivazione/disattivazione dei servizi | Utilizza la Console di amministrazione Google per gestire l'attivazione e la disattivazione dei servizi per un'unità organizzativa. |
| Password | Può contenere qualsiasi combinazione di caratteri. Sono richiesti almeno 8 caratteri. La lunghezza massima è di 100 caratteri. |
| Foto | In questa versione dell'API, una foto è l'ultima foto del profilo Google dell'utente. |
| Nomi utente | I nomi utente possono contenere lettere (a-z), numeri (0-9), trattini (-), trattini bassi (_) e Google Workspace riconosce i punti (.). Non è lo stesso di Gmail. Un nome utente non può contenere un segno di uguale (=), parentesi (<,>) o più di un punto (.) di seguito. Per saperne di più, consulta il Centro assistenza per l'amministrazione. |
| Nomi utente, ridenominazione | Google Hangouts elimina tutti gli inviti di chat memorizzati dopo la ridenominazione. L'utente deve richiedere nuovamente l'autorizzazione per chattare con gli amici. Il vecchio nome utente viene conservato come alias email per garantire la continuità del recapito della posta in caso di impostazioni di inoltro email e non sarà disponibile come nuovo nome utente. Per informazioni importanti sull'impatto della ridenominazione degli utenti, consulta il Centro assistenza per l'amministrazione. Utilizza l'operazione Elimina l'alias di un utente per rimuovere l'alias email dopo la ridenominazione. |
| Utenti in più domini | Un account Google Workspace può includere qualsiasi tuo dominio. In un account con più domini, gli utenti di un dominio possono condividere i servizi con gli utenti di altri domini dell'account. I componenti di più domini sono:
|
| Avvisi, membri del gruppo | GROUP_CANNOT_CONTAIN_CYCLE: l'API non consente un ciclo nelle iscrizioni ai gruppi. Ad esempio, se il gruppo 1 è membro del gruppo 2, il gruppo 2 non può essere membro del gruppo 1. |