配額簡介

Cloud Endpoints 提供配額,讓您控管應用程式呼叫您 API 的頻率。您可以設定配額來指定使用量限制,藉此保護 API 免於收到呼叫應用程式的過量要求。過多的要求可能源自於簡單的打字錯誤,或是設計不佳的系統導致不必要的 API 呼叫。無論原因為何,一旦來源的流量達到某個程度,就必須封鎖該來源的流量,才能確保 API 的整體健康。設定配額可確保單一應用程式不會對使用 API 的其他應用程式造成負面影響。

本頁面提供與配額相關的重要功能總覽。

要求與用戶專案相連結

設定配額後,Endpoints 即會追蹤每個消費者 Google Cloud 專案在每分鐘提出要求的次數。每個呼叫 API 的應用程式都必須符合以下條件:

  • 具備 Google Cloud 專案。
  • 已在Google Cloud 專案中啟用您的 API
  • 請在每項要求中傳送 API 金鑰 至您的 API。如此可讓 Endpoints 識別與呼叫應用程式相關聯的Google Cloud 專案,並增加該 Google Cloud 專案要求計數器的計次。

您可以讓 API 消費者在Google Cloud 控制台建立自己的專案,也可以為他們建立專案。由於 Endpoints 會以「專案」為單位執行配額限制,因此您必須為每個 API 用戶準備一項專案。

限制每分鐘提出的要求次數

您可以透過設定配額,限制每分鐘對整個 API 提出的要求次數;或者只限特定方法的要求次數。如果來自用戶專案的用戶端程式碼超過您設定的限制,則要求會在存取您的 API 之前遭拒,而系統則會傳回 HTTP 狀態碼 429 too many requests。呼叫應用程式必須處理 429 狀態碼的問題,並使用指數輪詢或其他重試邏輯,以降低對 API 的呼叫頻率。

設定一或多個配額

您可以設定一或多個已命名的配額,並為每個配額指定不同的頻率限制。例如,您的 API 可能具備某些會大量消耗資源的方法 (例如執行複雜查詢並傳回大型結果清單的方法),也可能包含其他較為快速且輕量的方法。因此,您可能會想要設定兩個頻率限制相異的配額,將大量消耗資源的方法與其中一個配額建立關聯,並將輕量方法和另一個配額建立關聯。

設定費用

當您建立方法與配額之間的關聯後,就能指定要求的成本。這可讓不同方法以不同的速率消耗相同配額。您可以使用費用,取代設定不同的配額。舉例來說,假設您設定的配額上限為每分鐘 1000 個要求,針對輕量方法,設定費用為 1,代表用戶端每分鐘可以呼叫輕量方法 1000 次。而對於大量消耗資源的方法,您可以將費用設為 2,代表每次用戶端呼叫該方法時,要求計數器都會遞增 2,直至達到 1000 次限制為止。實際上,這會將大量消耗資源的方法限制為每分鐘 500 次要求。

覆寫設定的配額

「Endpoints」 >「Services」頁面會顯示 API 中每個方法的設定配額。您可以視需要覆寫已為特定消費者專案設定的限制。如要設定覆寫值,您必須在「Endpoints」 >「Services」(服務) 頁面中輸入所需用戶專案的專案編號。如果您沒有要覆寫的消費者專案存取權,請聯絡有權存取該專案的使用者,以取得專案編號。

後續步驟