Google Sheets API は共有サービスであるため、割り当てと上限が適用されます。 すべてのユーザーが公平に使用できるようにし、 Google Workspace システムの健全性を確認できます。
割り当て上限
Sheets API では API リクエストのサイズにハードリミットはありませんが、スプレッドシートで制御できないさまざまな処理コンポーネントによって制限が発生することがあります。 リクエストを高速化するため、Google では最大ペイロードを 2 MB にすることをおすすめします。
Sheets API には分単位の割り当てがあり、1 分ごとに補充されます。たとえば、プロジェクトごとに 1 分あたり 300 件の読み取りリクエストの上限があります。
アプリが 1 分間に 350 件のリクエストを送信する場合、追加の 50 件のリクエストは割り当てを超過し、
429: Too many requests
HTTP ステータス コード レスポンス。そのような場合は、
指数バックオフ アルゴリズムを使用します。1 分後、
リクエストを再実行できます。ユーザーは、割り当て上限内であれば、同時に複数のリクエストを送信できます。
スプレッドシートのリクエストはすべてアトミックに適用されます。つまり、いずれかのリクエストが有効でない場合、更新全体が失敗し、(潜在的に依存する)変更はいずれも適用されません。
<ph type="x-smartling-placeholder">次の表に、リクエストの上限を示します。分単位の割り当て内であれば、1 分あたりの割り当て内であれば、 1 日あたりのリクエスト数に上限が設けられています。
割り当て | |||||
---|---|---|---|---|---|
読み取りリクエスト |
|
||||
書き込みリクエスト |
|
ファイルの上限について詳しくは、Google ドライブに保管可能なファイルをご覧ください。
時間ベースの割り当てエラーを解決する
すべての時間ベースのエラー(X 分あたり最大 N 個のリクエスト)に対しては、 例外をキャッチし、切り捨て型指数バックオフを使用して、 デバイスに過度の負荷が発生しないようにすることができます。
指数バックオフは、ネットワーク アプリケーションの標準的なエラー処理方法です。「 指数バックオフ アルゴリズムにより、待機時間が指数関数的に増加してリクエストを再試行 最大バックオフ時間まで再試行可能です。それでもリクエストが失敗する場合は、 リクエストが成功するまで、リクエスト間の遅延が時間の経過とともに増加することに注意してください。
アルゴリズムの例
指数バックオフ アルゴリズムはリクエストを指数関数的に再試行するため、待ち時間が長くなる 最大バックオフ時間内に再試行します。例:
- Google Sheets API にリクエストを送信します。
- リクエストが失敗した場合、1 +
random_number_milliseconds
待ってから再試行する 表示されます。 - リクエストが失敗した場合は、2 +
random_number_milliseconds
待ってから再試行する 表示されます。 - リクエストが失敗した場合は、4 +
random_number_milliseconds
待ってから再試行する 表示されます。 - このようにして、最大
maximum_backoff
時間まで繰り返します。 - 再試行の最大回数まで待機と再試行を続けるが、待機は増加しない 間隔を空けておけます
ここで
- 待ち時間は
min(((2^n)+random_number_milliseconds), maximum_backoff)
です。n
は、反復(リクエスト)のたびに 1 ずつ増加します。 random_number_milliseconds
は、ミリ秒以下の乱数です。 1,000 になります。これにより、複数のクライアントが同期される事態を回避でき、 同時に再試行して、リクエストを同期された状態で送信し、 あります。random_number_milliseconds
の値は、 リクエストを再試行します。- 通常、
maximum_backoff
は 32 秒または 64 秒です。適切な値 ユースケースによって異なります
クライアントは、maximum_backoff
時間に達した後も再試行を続行できます。
この時点より後の再試行では、バックオフ時間を増加させ続ける必要はありません。対象
たとえば、クライアントが 64 秒の maximum_backoff
時間を使用している場合、
この値を指定すると、クライアントは 64 秒ごとに再試行できます。ある時点で
無期限に再試行しないようにする必要があります。
再試行までの待ち時間と再試行回数はユースケースによって異なる ネットワーク状態を確認できます。
料金
Google Sheets API はすべて追加料金なしでご利用いただけます。割り当ての超過 リクエストの上限によって追加料金は発生せず、アカウントへの請求は行われません。
割り当ての増加をリクエストする
プロジェクトのリソース使用量に応じて、割り当てをリクエストする必要があります。 増加します。サービス アカウントによる API 呼び出しは、 できます。割り当ての増加を申請しても、承認が保証されるわけではありません。大 割り当ての増加が承認されるまで時間がかかることがあります。
割り当て量はすべてのプロジェクトで同じとは限りません。ますます Google Cloud を使用する傾向にあるため、 割り当ての増加が必要になる場合があります今後のイベントで 使用量が増加した場合は、事前に 割り当ての調整をリクエストする [割り当て] ページで 確認できます。
詳細については、次のリソースをご覧ください。