管理消費者配額

本頁說明如何使用 Service Consumer Management API,查看及覆寫對個別服務消費者強制執行的配額限制。

請務必熟悉服務配額模型,以便瞭解本教學課程中使用的術語。

如要根據 Service Infrastructure API 編寫程式,建議您使用我們提供的其中一種用戶端程式庫。如要試用 API,請按照本指南中的操作說明,使用 curl 指令測試 API,無需設定完整的應用程式開發環境。

顯示服務配額

在本教學課程中,我們將使用名為 consumer-project-id 的專案和名為 myservice.appspot.com 的服務。在每個 gcurl 指令中,替換您感興趣的服務和消費者專案。

如要使用 gcurl,請先執行下列 alias 指令並提供驗證權杖:

alias gcurl='curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json"'

詳情請參閱入門指南

如要查看適用於特定消費者的所有指標配額限制,請使用下列方法:

gcurl https://serviceconsumermanagement.googleapis.com/v1beta1/services/myservice.appspot.com/projects/consumer-project-id/consumerQuotaMetrics

這項呼叫會傳回服務定義的指標清單,每個指標都包含適用於這個消費者的指標限制清單、這些限制的值,以及任何覆寫項目。回覆範例如下:

{
  "metrics": [
    {
      "name": "services/myservice.appspot.com/projects/consumer-project-id/consumerQuotaMetrics/airport_requests",
      "metric": "airport_requests"
      "displayName": "Airport Requests"
      "consumerQuotaLimits": [
        {
          "name": "services/myservice.appspot.com/projects/consumer-project-id/consumerQuotaMetrics/airport_requests/limits/%2Fmin%2Fproject",
          "metric": "airport_requests",
          "unit": "1/min/{project}",
          "quotaBuckets": [
            {
              "effectiveLimit": "5",
              "defaultLimit": "5",
            }
          ]
        }
      ],
    }
  ]
}

回應中的每個指標都有名稱欄位;如要檢查特定指標的配額設定,而非所有指標,請在網址中使用該指標的名稱:

gcurl https://serviceconsumermanagement.googleapis.com/v1beta1/{name}

同樣地,指標中的每個限制都有名稱欄位;如要檢查該指標中特定限制的配額設定,而非指標中的所有限制或所有指標,請在網址中使用該限制的名稱:

gcurl https://serviceconsumermanagement.googleapis.com/v1beta1/{name}

套用生產端覆寫設定

服務擁有者或管理員可以對特定消費者的特定限制套用生產者覆寫,藉此提高該限制的配額。

如要找出限制,請先使用上述其中一種方法找出感興趣的配額限制,然後使用其名稱欄位對其套用生產者覆寫:

gcurl https://serviceconsumermanagement.googleapis.com/v1beta1/{name}/producerOverrides -d '{"override": {"override_value": "12345"} }'

這個呼叫可用於套用新的覆寫值,或將現有覆寫值更新為新值。 如要授予無上限配額,請使用「-1」做為覆寫值。

如果呼叫成功,系統會傳回作業 ID,代表配額變更正在伺服器上進行,並傳播至後端系統:

{
  "name": "operations/quf.92accba3-6530-4fc1-9a95-c1280d48a6b7"
}

如要查看作業進度,請使用作業名稱:

gcurl https://serviceconsumermanagement.googleapis.com/v1/{name}

如果這項呼叫傳回的訊息包含「done」:true,表示作業已完成。如果作業失敗,訊息會包含錯誤詳細資料。

您也可以對特定限制重複原始的 GET 呼叫,確認變更是否已套用。現在限制應會多出「producerOverride」欄位。

強制大幅變更配額

如果覆寫會導致強制執行的配額減少超過 10%,系統會拒絕呼叫,以免配額減少速度過快。如要忽略這項限制,請使用強制標記:

gcurl https://serviceconsumermanagement.googleapis.com/v1beta1/{name}/producerOverrides -d '{"override": {"override_value": "0"}, "force": true}'

套用區域或可用區配額覆寫

部分配額限制是按區域或可用區強制執行;限制單位中如有 /{region} 或 /{zone},即表示此限制是按區域或可用區強制執行。

對這類限制套用覆寫,會變更每個區域或可用區的基本配額。如要只變更特定區域或地帶的配額,請使用位置欄位:

gcurl https://serviceconsumermanagement.googleapis.com/v1beta1/{name}/producerOverrides -d '{"override": {"override_value": "135", "dimensions": {"region": "asia-south1"} } }'