Google Cloud 會使用配額限制您可使用的特定共用 Google Cloud 資源數量。每項配額都代表特定的可計數資源,例如向特定服務發出的 API 呼叫數、傳送至特定服務的位元組數,或是專案同時使用的串流連線數量。
許多服務也設有與配額系統無關的限制。這些是固定限制,例如訊息大小上限或專案中可建立的 Pub/Sub 資源數量,這些限制無法增加或減少。
查看及管理配額
您可以使用 IAM 與管理員配額資訊主頁,查看特定專案目前的配額限制和用量。您也可以使用這個資訊主頁執行下列操作:
- 調降配額限制
- 申請提高配額限制
如要進一步瞭解如何監控及發出配額用量警報,請參閱「監控」一文。
配額用量歸因
針對推送訂閱者總處理量而言,系統會依據包含推送訂閱的專案收取配額用量費用。這是訂閱項目名稱中顯示的專案。
針對其他所有配額,系統會依據與要求中指定憑證相關聯的專案收取用量費用。系統不會向包含要求資源的專案收取配額用量費用。
舉例來說,如果專案 A 的服務帳戶傳送發布要求,請求在專案 B 中發布某個主題,系統會向專案 A 收取配額使用費。在某些情況下,您可能會想將配額用量計入另一個專案。您可以使用 X-Goog-User-Project
系統參數,變更配額歸屬的專案。如要進一步瞭解 X-Goog-User-Project
,請參閱「系統參數」。
您可以使用 gcloud CLI 設定專案,為特定要求提供配額歸因。gcloud CLI 會傳送 X-Goog-User-Project
要求標頭。
您必須在要用於配額歸因的專案中,具備 roles/serviceusage.serviceUsageConsumer
角色或具備 serviceusage.services.use
權限的自訂角色。
以下範例說明如何在對專案 QUOTA_PROJECT 收取管理員作業配額時,取得專案 RESOURCE_PROJECT 中的訂閱項目清單。在 Google Cloud CLI 終端機中執行下列指令:
gcloud pubsub subscriptions list --project=
RESOURCE_PROJECT --billing-project=
QUOTA_PROJECT
將 QUOTA_PROJECT
替換為您要對其收取配額費用的 Google Cloud 專案 ID。
請注意,在 Pub/Sub 中,收費的專案一律是包含資源的專案。您只能變更配額歸因專案。
Pub/Sub 配額
您可以在 API 和服務的配額資訊主頁中查看及編輯各項專案的配額,配額相關資訊請見下表。
區域性配額分為 3 種:
- 大型區域:
europe-west1
、europe-west4
、us-central1
、us-east1
、us-east4
、us-west1
、us-west2
- 中型區域:
asia-east1
、asia-northeast1
、asia-southeast1
、europe-west2
、europe-west3
- 小型區域:所有其他區域
僅傳送一次的傳送配額取決於區域。請查看下表,瞭解各個地區的詳細資訊。
配額 | 預設配額限制 | 說明 |
---|---|---|
每個區域的發布者處理量 |
|
配額用量是按照已發布的
請注意,一個發布要求中可以包含多則訊息,系統不會針對每則訊息額外收取配額費用。 |
每個區域的提取訂閱者總處理量 |
|
配額用量是按照傳回的
|
每個區域的確認者處理量 |
|
配額用量是按照
|
每個區域的推送訂閱處理量 |
|
以傳送至推送端點的推送傳遞要求來說,配額用量是按照傳送至推送端點的 |
BigQuery 訂閱:每個區域的處理量 |
|
針對傳送至 BigQuery 的要求,配額用量是按照傳送至 BigQuery 的 |
每個區域的 Cloud Storage 訂閱處理量 |
|
對於向 Cloud Storage 提出的要求,配額用量是以傳送至 Cloud Storage 的 |
每個區域的 StreamingPull 訂閱者處理量 |
|
配額用量是按照已串流至訂閱者的
請注意,用戶端程式庫會盡可能使用 StreamingPull 作業。 |
每個區域的 StreamingPull 開放連線數量 |
|
任意時間點的 StreamingPull 公開連線數。請參閱 StreamingPull。 |
系統管理員作業 | 每分鐘 6,000 次 (每秒 100 次操作) |
每個系統管理員作業 (例如 GetTopicRequest) 都會耗用一個配額單位。
|
在各個區域中,啟用確切一次傳送功能後,訂閱項目消耗的訊息數量 |
|
配額用量是按照訂閱者消耗的
|
在每個區域使用啟用「僅傳送一次」的訂閱項目時,已確認或延長期限的訊息數量 |
|
配額用量是按照
|
總處理量配額單位
總處理量配額是以 1 kB 為單位計算用量。1 KB 等於 1,000 個位元組。舉例來說,如果 PublishRequest
中含有 105 則訊息,每則訊息的大小為 50 個位元組,則使用者資料大小為 105 * 50 bytes = 5250 bytes
,因此配額用量為 max(1kB, ceil(5250 bytes/1000)) = 6kB
。
資源限制
資源 | 限制 |
---|---|
專案 |
10,000 個主題 10,000 個附加或卸離的訂閱項目 5,000 張快照 10,000 個結構定義 |
主題 |
10,000 個附加訂閱項目 5,000 張附加快照 如果設定主題訊息保留時間,則發布至主題的訊息可在永久儲存空間中保留,自發布時起算最多 31 天。 |
訂閱 |
根據預設,未確認訊息會保留在永久儲存空間中,自發布起算 7 天。保留的訊息數量沒有限制。 如果訂閱者未使用訂閱項目,訂閱項目就會過期。預設的有效期限為 31 天。 |
結構定義 | 結構定義大小 (definition 欄位):300 KB每個結構定義的修訂版本:20 個 |
發布要求 |
總大小 10 MB 1,000 則訊息 |
訊息 |
訊息大小 (data 欄位):10 MB每則訊息的屬性數:100 項 屬性鍵大小:256 個位元組 屬性值大小:1024 個位元組 |
StreamingPull 串流 | 每個公開串流 10 MBps |
一元提取回應 |
提取回應中的訊息數量上限:1000 提取回應的大小上限:10 MB |
Pull/StreamingPull 訊息 | 本服務可能會限制每個連線的待處理 StreamingPull 訊息總數。如果您受到這類限制影響,請提高確認訊息的速率和所用連線數量。 |
Acknowledge 和 ModifyAckDeadline 要求 |
512 KB (總大小) |
排序鍵 | 如果訊息含有排序鍵,則每個排序鍵的最大發布者總處理量為 1 MBps。 |
Cloud Storage 值區物件 | 使用 Cloud Storage 匯入主題時,bucket 中的物件數量上限為 5000 萬。 |
使用服務帳戶取得更高的配額
如果您是以一般使用者帳戶 (也就是非服務帳戶) 使用 Google Cloud CLI 工具,Pub/Sub 只能以適合手動作業的速率執行工作。一旦超過上述速率限制,系統就會傳回 RESOURCE_EXHAUSTED 錯誤。您只要改用服務帳戶憑證就能解決這個問題。如要使用 gcloud CLI 的憑證進行自動化作業,請啟用服務帳戶來執行 Pub/Sub 作業。
使用位置端點將要求導向
如果部分區域仍有剩餘配額,您可以使用位置 Pub/Sub 端點將要求轉送至這些區域。將訊息發布至全球端點時,Pub/Sub 服務可能會將流量轉送至配額不足的區域。
配額不符
發布或接收訊息小於 1,000 位元組時,可能會發生配額不符的情形,例如:
如果您在不同要求中發布 10 則 500 位元組的訊息,發布者配額用量就是 10,000 位元組。這是因為小於 1,000 位元組的訊息,會自動無條件進位至下一個 1,000 位元組。
如果在單一提取回應中接收了前述 10 則訊息,您的訂閱者配額用量可能變成只有 5 kB,這是因為系統會合併計算各則訊息的實際大小,而得出的總和就是總體配額。
反之亦然。如果您在一項發布要求中同時發布了多則訊息,或是透過不同的提取要求接收訊息,訂閱者配額用量可能會高於發布者配額用量。