管理消費者配額

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

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

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

顯示服務配額

如要顯示服務配額指標和限制,請按照下列步驟操作:

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

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

    詳情請參閱「啟用 Service Usage API」一文。

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

    gcurl https://serviceconsumermanagement.googleapis.com/v1beta1/services/SERVICE_NAME/projects/PROJECT_ID/consumerQuotaMetrics
    

    更改下列內容:

    • SERVICE_NAME:服務名稱。
    • PROJECT_ID:感興趣的消費者專案 ID。

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

    {
      "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",
                }
              ]
            }
          ],
        }
      ]
    }
    
  3. 回應中的每項指標都有名稱欄位。如要檢查特定指標的配額設定,而非所有指標,請在網址中使用該指標的名稱:

    gcurl https://serviceconsumermanagement.googleapis.com/v1beta1/METRIC_NAME
    

    METRIC_NAME 替換為指標的完整名稱。例如:

    services/myservice.appspot.com/projects/consumer-project-id/consumerQuotaMetrics/airport_requests

  4. 指標中的每個限制都有名稱欄位。如要檢查該指標的配額限制,而非指標的所有限制或所有指標,請在網址中使用該限制的名稱:

    gcurl https://serviceconsumermanagement.googleapis.com/v1beta1/LIMIT_NAME
    

    LIMIT_NAME 替換為限制的完整名稱。例如:

    services/myservice.appspot.com/projects/consumer-project-id/consumerQuotaMetrics/airport_requests/limits/%2Fmin%2Fproject

套用生產端覆寫設定

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

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

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

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

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

    {
      "name": "operations/quf.92accba3-6530-4fc1-9a95-c1280d48a6b7"
    }
    
  2. 如要查看作業進度,請使用作業名稱:

    gcurl https://serviceconsumermanagement.googleapis.com/v1/OPERATION_NAME
    

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

    您也可以對特定限制重複原始的 get 呼叫,確認變更是否已套用。現在限制必須有額外的 producerOverride 欄位。

強制大幅變更配額

如果覆寫會導致強制執行的配額減少超過 10%,系統會拒絕呼叫,這是為了避免配額意外快速減少的安全措施。如要忽略這項限制,請使用強制標記:

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

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

系統會針對每個區域或可用區強制執行部分配額限制;如果限制單位中出現 /{region} 或 /{zone},即表示有這類限制。

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

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