Limiti di utilizzo

Poiché l'API Fogli Google è un servizio condiviso, applichiamo quote e limitazioni per assicurarci che venga utilizzata in modo equo da tutti gli utenti e per proteggere l'integrità complessiva del sistema Google Workspace.

Limiti di quota

L'API Fogli non prevede limiti di dimensioni per le richieste API, ma gli utenti potrebbero riscontrare limiti relativi a componenti di elaborazione diversi non controllati da Fogli. Per velocizzare le richieste, Google consiglia un payload massimo di 2 MB.

L'API Fogli ha quote al minuto e vengono ricaricate ogni minuto. Ad esempio, esiste un limite di richieste di lettura di 300 al minuto per progetto. Se la tua app invia 350 richieste in un minuto, le 50 richieste aggiuntive superano la quota e generano una risposta del codice di stato HTTP 429: Too many requests. In questo caso, devi utilizzare un algoritmo di backoff esponenziale. Dopo 1 minuto, potrai nuovamente eseguire le richieste. Gli utenti possono inviare contemporaneamente più richieste, purché rientrino nel limite della quota.

Tutte le richieste di Fogli vengono applicate in modo atomico. In altre parole, se una richiesta non è valida, l'intero aggiornamento non riesce e non viene applicata nessuna delle modifiche (potenzialmente dipendenti).

I limiti per le richieste sono descritti nella tabella seguente. Se specifichi le quote al minuto, non esiste un limite al numero di richieste che puoi effettuare al giorno.

Quote
Richieste di lettura
Al minuto per progetto 300
Al minuto per utente per progetto 60
Richieste di scrittura
Al minuto per progetto 300
Al minuto per utente per progetto 60

Per informazioni dettagliate sui limiti dei file, vedi File archiviabili su Google Drive.

Risolvere gli errori di quota basati sul tempo

Per tutti gli errori basati sul tempo (massimo N richieste per X minuti), consigliamo che il codice catturi l'eccezione e utilizzi un backoff esponenziale troncato per assicurarti che i dispositivi non generino carico eccessivo.

Il backoff esponenziale è una strategia di gestione degli errori standard per le applicazioni di rete. Un algoritmo di backoff esponenziale prova a eseguire il recupero delle richieste utilizzando tempi di attesa tra le richieste con aumento esponenziale, fino a un tempo di backoff massimo. Se le richieste hanno ancora esito negativo, è importante che i ritardi tra le richieste aumentino nel tempo fino a quando la richiesta non va a buon fine.

Algoritmo di esempio

Un algoritmo di backoff esponenziale ripete i tentativi di richiesta in modo esponenziale, aumentando il tempo di attesa tra un nuovo tentativo e l'altro fino a un tempo di backoff massimo. Ad esempio:

  1. Inviare una richiesta all'API di Fogli Google.
  2. Se la richiesta non va a buon fine, attendi 1 + random_number_milliseconds e riprova.
  3. Se la richiesta non va a buon fine, attendi 2 + random_number_milliseconds e riprova.
  4. Se la richiesta non va a buon fine, attendi 4 + random_number_milliseconds e riprova.
  5. E così via, fino a un massimo di maximum_backoff volta.
  6. Continua ad attendere e riprovare fino al numero massimo di nuovi tentativi, ma non aumentare il periodo di attesa tra un nuovo tentativo e l'altro.

dove:

  • Il tempo di attesa è min(((2^n)+random_number_milliseconds), maximum_backoff), con n incrementato di 1 per ogni iterazione (richiesta).
  • random_number_milliseconds è un numero casuale di millisecondi inferiore o uguale a 1000. In questo modo è possibile evitare casi in cui molti client vengono sincronizzati in base a una determinata situazione e riprovano tutte insieme, inviando richieste in onde sincronizzate. Il valore di random_number_milliseconds viene ricalcolato dopo ogni richiesta di nuovo tentativo.
  • Solitamente il tempo di maximum_backoff è di 32 o 64 secondi. Il valore appropriato dipende dal caso d'uso.

Il client può continuare a riprovare una volta raggiunto maximum_backoff volta. Non sarà necessario continuare ad aumentare i tempi di backoff per i nuovi tentativi effettuati dopo questo punto. Ad esempio, se un client utilizza un tempo di maximum_backoff di 64 secondi, dopo aver raggiunto questo valore, il client può riprovare ogni 64 secondi. A un certo punto, ai client deve essere impedito di riprovare a tempo indeterminato.

Il tempo di attesa tra un nuovo tentativo e il numero di nuovi tentativi dipende dal caso d'uso e dalle condizioni di rete.

Prezzi

L'utilizzo dell'API Fogli Google è disponibile senza costi aggiuntivi. Il superamento dei limiti di richiesta della quota non comporta costi aggiuntivi e la fatturazione sul tuo account non avviene.

Richiedi un aumento della quota

A seconda dell'utilizzo delle risorse del tuo progetto, potresti voler richiedere un aumento della quota. Le chiamate API da parte di un account di servizio sono considerate come se utilizzassero un singolo account. La richiesta di un aumento di quota non garantisce l'approvazione. L'approvazione di aumenti di quota consistenti può richiedere più tempo.

Non tutti i progetti hanno le stesse quote. Man mano che utilizzi sempre più Google Cloud nel tempo, le tue quote potrebbero dover aumentare. Se prevedi un aumento imminente e consistente dell'utilizzo, puoi richiedere un aggiustamento della quota in modo proattivo nella pagina Quote della console Google Cloud.

Per saperne di più, consulta le seguenti risorse: