Die Google Sheets API ist ein gemeinsamer Dienst. Wir wenden Kontingente und Einschränkungen an, um die Gesamtleistung des Google Workspace-Systems für alle Nutzer zu schützen.
Kontingentlimits
Für API-Anfragen an die Sheets API gibt es keine festen Größenbeschränkungen. Nutzer können jedoch auf Beschränkungen durch verschiedene Verarbeitungskomponenten stoßen, die nicht von Google Sheets gesteuert werden. Um Anfragen zu beschleunigen, empfehlen wir eine maximale Nutzlast von 2 MB.
Für die Sheets API gibt es Minutenkontingente, die jede Minute aufgefüllt werden.
So gibt es beispielsweise ein Leseanfragelimit von 300 pro Minute und Projekt. Wenn Ihre App 350 Anfragen in einer Minute sendet, überschreiten die zusätzlichen 50 Anfragen das Kontingent und es wird ein 429: Too many requests-HTTP-Statuscode zurückgegeben. In diesem Fall sollten Sie einen Algorithmus für exponentiellen Backoff verwenden.
Nach einer Minute können Sie wieder Anfragen ausführen.
In der folgenden Tabelle sind die Anfragebeschränkungen aufgeführt:
| Kontingente | |||||
|---|---|---|---|---|---|
| Leseanfragen |
|
||||
| Schreibanfragen |
|
||||
Weitere Informationen zu Dateilimits finden Sie unter In Google Drive speicherbare Dateien.
Verhalten und Einschränkungen
Beachten Sie bei der Arbeit mit der ((sheets_api_short)) die folgenden Verhaltensweisen und Einschränkungen, die sich auf Ihre Kontingente auswirken:
Leseanfragen sind Aufrufe einer beliebigen Methode, mit der Daten aus einer Tabelle abgerufen werden, z. B.
getodersearch. Schreibanfragen sind Aufrufe einer Methode, die eine Tabelle ändert, z. B.update,clearodercopyTo.Nutzer können mehrere Anfragen gleichzeitig senden, sofern sie das Kontingentlimit nicht überschreiten. Jede Batchanfrage, einschließlich aller untergeordneten Anfragen, wird als eine API-Anfrage auf Ihr Nutzungslimit angerechnet.
Alle Sheets-Anfragen werden in kleinstmöglichen Schritten angewendet. Wenn also eine Anfrage ungültig ist, schlägt die gesamte Aktualisierung fehl und keine der (möglicherweise abhängigen) Änderungen wird angewendet.
Für die Verarbeitung einer API-Anfrage gilt ein maximales Zeitlimit. Wenn Sheets eine Anfrage länger als 180 Sekunden verarbeitet, wird für die Anfrage ein Zeitüberschreitungsfehler zurückgegeben.
Sofern Sie die Kontingente pro Minute nicht überschreiten, gibt es kein Limit für die Anzahl der Anfragen, die Sie pro Tag stellen können.
Zeitbasierte Kontingentfehler beheben
Bei allen zeitbasierten Fehlern (maximal N Anfragen pro X Minuten) empfehlen wir, dass Ihr Code die Ausnahme abfängt und einen abgeschnittenen exponentiellen Backoff verwendet, um sicherzustellen, dass Ihre Geräte keine übermäßige Last erzeugen.
Exponentielle Backoffs sind eine Standardstrategie zur Fehlerbehebung für Netzwerkanwendungen. Ein exponentieller Backoff-Algorithmus wiederholt Anfragen mit exponentiell zunehmenden Wartezeiten zwischen den Anfragen bis zur maximalen Backoff-Zeit. Wenn Anfragen weiterhin nicht erfolgreich sind, ist es wichtig, dass die Verzögerungen zwischen den Anfragen mit der Zeit zunehmen, bis die Anfrage erfolgreich ist.
Beispielalgorithmus
Ein exponentieller Backoff-Algorithmus wiederholt Anfragen exponentiell und verlängert dabei die Wartezeit zwischen zwei Wiederholungen bis zur maximalen Backoff-Zeit. Beispiel:
- Stellen Sie eine Anfrage an die Google Sheets API.
- Wenn die Anfrage fehlschlägt, wartet das System 1 +
random_number_millisecondsSekunden und wiederholt dann die Anfrage. - Wenn die Anfrage fehlschlägt, wartet das System 2 +
random_number_millisecondsSekunden und wiederholt dann die Anfrage. - Wenn die Anfrage fehlschlägt, wartet das System 4 +
random_number_millisecondsSekunden und wiederholt dann die Anfrage. - Und so weiter bis zur
maximum_backoff-Zeit. - Das System wartet weiter und führt erneute Versuche bis zu einer maximalen Anzahl an Wiederholungsversuchen aus, jedoch ohne den zeitlichen Abstand zwischen zwei Versuchen zu erhöhen.
Dabei gilt:
- Die Wartezeit beträgt
min(((2^n)+random_number_milliseconds), maximum_backoff), wobeinbei jeder Ausführung (Anfrage) um 1 erhöht wird. random_number_millisecondssteht für eine zufällige Anzahl von Millisekunden,deren Wert größer oder gleich 1.000 ist. So lassen sich Situationen vermeiden, in denen viele Clients synchronisiert werden und alle gleichzeitig Anfragen wiederholen und diese in synchronisierten Wellen senden. Der Wert vonrandom_number_millisecondswird nach jeder Anfragewiederholung neu berechnet.maximum_backoffist normalerweise 32 oder 64 Sekunden lang. Der geeignete Wert hängt vom jeweiligen Anwendungsfall ab.
Der Client kann den Vorgang wiederholen, nachdem er die maximum_backoff-Zeit erreicht hat.
Die Backoff-Zeit muss dabei nicht mehr verlängert werden. Wenn ein Client beispielsweise eine maximum_backoff-Zeit von 64 Sekunden verwendet, kann er den Vorgang nach Erreichen dieses Werts alle 64 Sekunden noch einmal versuchen. Sie sollten jedoch dafür sorgen, dass er dies nicht unbegrenzt tut.
Die Wartezeit zwischen den Wiederholungen und die Anzahl der Wiederholungen hängen von Ihrem Anwendungsfall und den Netzwerkbedingungen ab.
Preise
Die Nutzung der Google Sheets API ist kostenlos. Wenn Sie die Kontingentlimits für Anfragen überschreiten, fallen keine zusätzlichen Gebühren an und Ihr Konto wird nicht belastet.
Kontingenterhöhung anfordern
Abhängig von der Ressourcennutzung Ihres Projekts können Sie eine Kontingentanpassung beantragen. API-Aufrufe durch ein Dienstkonto werden als Aufrufe über ein einzelnes Konto betrachtet. Wenn Sie ein angepasstes Kontingent beantragen, bedeutet dies nicht, dass Ihr Antrag auch genehmigt wird. Die Genehmigung von Anfragen zur Kontingentanpassung, die den Kontingentwert erheblich erhöhen würden, kann länger dauern.
Es gelten nicht für alle Projekte dieselben Kontingente. Wenn Sie Google Cloud im Laufe der Zeit häufiger nutzen, müssen Ihre Kontingentwerte möglicherweise erhöht werden. Falls Sie eine deutlich stärkere Auslastung erwarten, können Sie auf der Seite „Kontingente“ der Google Cloud Console eine Anpassung Ihres Kontingents anfordern.
Weitere Informationen finden Sie in den folgenden Ressourcen:
- Kontingentanpassungen
- Aktuelle Kontingentnutzung und ‑limits ansehen
- Höheres Kontingentlimit anfordern