API 頻率限制

API 頻率限制定義了您可以對 Compute Engine API 提出的要求數。每項專案的 API 頻率限制可能不同。當您使用 gcloud computeGoogle Cloud Platform Console 時,也是同時在向 API 提出要求,這些要求會計入您的 API 頻率限制中。如果使用服務帳戶存取 API,相關要求也會計入頻率限制中。

目前專案只適用下列 API 頻率限制類別。各限制類別分開計算,因此您有可能同時達到每個類別的上限:頻率限制每隔 100 秒強制執行一次。例如,每秒 20 個要求相當於在 100 秒內提出 2000 個要求。也就是說,只要在 100 秒內達到特定上限,就需等配額值區重新整理,才能提出更多要求。

  • 查詢 - 所有方法適用的限制,但 *.get*.list 方法除外:
    • 每項專案的頻率:每秒 20 次要求
    • 每位使用者的頻率:每秒 20 次要求
  • 讀取要求 - *.get 方法適用的限制:
    • 每項專案的頻率:每秒 20 次要求
    • 每位使用者的頻率:每秒 20 次要求
  • 清單要求 - *.list 方法適用的限制:
    • 每項專案的頻率:每秒 20 次要求
    • 每位使用者的頻率:每秒 20 次要求
  • 作業讀取請求 - *OperationsService.Get 方法適用的限制:
    • 每項專案的頻率:每秒 20 次要求
    • 每位使用者的頻率:每秒 20 次要求
  • 高負載讀取要求 - *.AggregatedList 方法適用的限制:
    • 每項專案的頻率:每秒 10 次要求
    • 每位使用者的頻率:每秒 10 次要求
  • 高負載異動要求 針對 InterconnectsServiceInterconnectAttachmentsService 功能的 patchdeleteinsert 方法適用的限制:
    • 每項專案的頻率:每秒 10 次要求
    • 每位使用者的頻率:每秒 10 次要求
  • 執行個體 SimulateMaintenanceEvent 要求 - *.SimulateMaintenanceEvent 方法適用的限制:
    • 每項專案的頻率:每秒 2 次要求
    • 每位使用者的頻率:每秒 2 次要求
  • 授權插入要求 - *.LicensesService.Insert 方法適用的限制:
    • 每項專案的頻率:每秒 2 次要求
    • 每位使用者的頻率:每秒 2 次要求

如要提高 API 要求的頻率限制配額,您可以透過 Google Cloud Platform Console 提交增額要求。

最佳做法

以下提供一些最佳做法,可以協助您處理 Compute Engine 的 API 頻率限制。

  • 慎用爆發功能。爆發是指允許特定用戶端在短期間內發出多項 API 要求。通常只會在例外情形這麼做,例如您的應用程式需要處理的流量比平常多。爆發會快速用完 API 頻率限制,因此除非必要請勿使用。

  • 使用用戶端頻率限制工具。用戶端頻率限制工具會設定一個人工限制,相關用戶端就只能使用定量配額。 這樣能夠避免任何一個用戶端佔用所有配額。

  • 達到配額時,運用指數輪詢主動拉長要求與要求之間的間隔。這樣可以讓伺服器有時間重填配額值區。

  • 避免短暫的輪詢作業,執行這類作業時,用戶端會連續對伺服器提出要求而不會等待回應。執行短時間輪詢較不易攔截異常要求,這類要求無論是否傳回有用資料均會佔用配額。

  • 將應用程式分散在多個專案中。配額是採個別專案制,因此,您可以將應用程式分散開來,讓每一個應用程式各用一組專用配額。

  • 如果收到 403 錯誤並顯示錯誤訊息 rateLimitExceeded,請等待幾秒鐘再次提出要求。系統每 100 秒重填一次配額值區,因此只要過了這個間隔,您的要求應該會成功。