Google Vault API 是共用服務,因此我們設下配額和限制,確保所有使用者都能公平使用,並維護 Google Workspace 系統的整體健康狀態。
產品數量上限
您最多只能同時為貴機構執行 20 項匯出作業。
API 要求配額
每個機構每分鐘可讀取 600 個案件,包括透過 Vault API 和 vault.google.com 提出的要求,適用於所有專案和使用者。
下表列出每個專案每分鐘的要求數上限:
每項專案每分鐘的讀取要求數 | |
---|---|
匯出、案件和已儲存的查詢 | 120 |
保留 | 228 |
長期執行的作業 | 300 |
每項專案每分鐘的寫入要求數 | |
---|---|
匯出 | 20 |
保留 | 60 |
案件權限 | 30 |
Matter | 60 |
已儲存的查詢 | 45 |
每項專案每分鐘的搜尋 (計數) 要求數 | |
---|---|
搜尋次數 | 20 |
依方法劃分的配額用量
要求使用的配額取決於呼叫的方法。 下表列出各方法的配額用量:
方法 | 配額費用 |
---|---|
matters.close matters.create matters.delete matters.reopen matters.update matters.undelete
|
1 個案件讀取 1 個案件寫入 |
matters.count |
1 個 |
matters.get |
已讀取 1 個案件 |
matters.list |
10 個案件讀取次數 |
matters.addPermissions matters.removePermissions
|
1 個案件讀取 1 個案件寫入 1 個案件權限寫入 |
matters.exports.create |
1 次匯出讀取 10 次匯出寫入 |
matters.exports.delete |
1 次匯出寫入 |
matters.exports.get |
已讀取 1 個匯出項目 |
matters.exports.list |
5 次匯出讀取 |
matters.holds.addHeldAccounts matters.holds.create matters.holds.delete matters.holds.removeHeldAccounts matters.holds.update
|
1 項讀取案件 1 項寫入案件 1 項讀取保留 1 項寫入保留 |
matters.holds.list |
1 個案件已讀取 3 個案件已保留 |
matters.holds.accounts.create matters.holds.accounts.delete matters.holds.accounts.list
|
1 項讀取案件 1 項寫入案件 1 項讀取保留 1 項寫入保留 |
matters.savedQueries.create matters.savedQueries.delete
|
1 項案件讀取 1 項案件寫入 1 項已儲存的查詢讀取 1 項已儲存的查詢寫入 |
matters.savedQueries.get |
1 個案件讀取 1 項已儲存的查詢讀取 |
matters.savedQueries.list |
1 項案件讀取 3 項已儲存的查詢讀取 |
operations.get |
1 項長時間執行的作業讀取 |
解決時間配額錯誤
如果超出每分鐘或每個機構的配額,通常會收到 429: Too many requests
HTTP 狀態碼回應。
對於所有時間相關錯誤 (每 X 分鐘最多 N 個要求),建議您的程式碼擷取例外狀況,並使用截斷指數輪詢,確保裝置不會產生過多負載。
指數輪詢是網路應用程式的標準錯誤處理策略。指數輪詢演算法會以指數方式重試要求,並將每次要求之間的等待時間逐漸增加至最大輪詢時間,如果要求仍未成功,請務必隨著時間增加要求之間的延遲時間,直到要求成功為止。
演算法範例
指數輪詢演算法會以指數方式重試要求,並將每次重試之間的等待時間逐漸增加至最大輪詢時間,例如:
- 對 Google Vault 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
時間上限後,還是可以繼續重試。但接下來的重試工作就不需繼續增加輪詢時間。舉例來說,如果用戶端使用的 maximum_backoff
時間上限是 64 秒,達到這個值之後,用戶端就可以維持在每 64 秒重試一次的頻率。到了特定時間點後,用戶端應停止無限重試。
重試之間的等待時間和重試次數,應視用途及您的網路狀況而定。
申請提高配額
您可以依據專案的資源用量,要求調整配額。服務帳戶的 API 呼叫會視為使用單一帳戶。我們不保證一定能核准您提出的配額調整要求。如果配額調整要求會大幅提高配額值,可能需要較長時間才能通過核准。
並非所有專案的配額都相同。隨著您使用 Google Cloud 的時間越長,配額值可能需要增加。如果預期用量將大幅攀升,可以透過 Google Cloud 控制台的「配額」頁面主動要求調整配額。
如要進一步瞭解相關內容,請參閱下列資源:
定價
Google Workspace 客戶可免費使用 Google Vault API。