設定配額專案

本頁說明如何為以用戶端為基礎的 API 設定配額專案。如要瞭解配額專案的用途、如何設定配額 API,以及配額專案的決定方式,請參閱「關於配額專案」。

如果您向以用戶端為準的 API 提出要求,但系統無法識別配額專案,要求可能會失敗。配額專案可透過多種方式設定,並透過檢查下列選項進行驗證。系統會依優先順序顯示這些項目:

  • 要求中指定要求中指定的配額專案。 (使用用戶端程式庫時,您也可以在要求中使用環境變數)。

  • API 金鑰:如果您使用 API 金鑰為要求提供憑證,系統會將與 API 金鑰相關聯的專案做為配額專案。

  • Google Cloud CLI 憑證:如果您使用 gcloud CLI 取得存取權杖,並已透過使用者憑證向 gcloud CLI 進行驗證,系統有時會使用 gcloud CLI 共用專案做為配額專案。不過,並非所有以用戶端為基礎的 API 都會改用共用專案。

  • 服務帳戶:如果 API 呼叫的主體是服務帳戶 (包括模擬),則與服務帳戶相關聯的專案會做為配額專案。

  • 員工身分聯盟:如果 API 的主體是員工身分聯盟使用者,則員工集區使用者專案會做為配額專案。

如果先前的檢查都未產生配額專案,要求就會失敗。

設定配額專案的方式有很多種,如果配額專案是透過多種方法指定,系統會套用下列優先順序:

  1. 透過程式輔助方式
  2. 環境變數
  3. 用於驗證要求的憑證

透過程式設定配額專案

您可以在應用程式中明確設定配額專案。這個方法會覆寫所有其他定義。用於驗證要求的主體必須在指定的配額專案中擁有必要權限。

以程式輔助方式設定配額專案時,方法取決於您使用的是用戶端程式庫、gcloud CLI 還是 REST API 要求。

用戶端程式庫

建立用戶端時,您可以使用用戶端選項設定配額專案的值。如果您想從應用程式控管配額專案的值,無論應用程式在何種環境中執行,這個方法都很適合。

如要進一步瞭解如何實作用戶端選項,請參閱用戶端程式庫說明文件。

gcloud CLI

如要為所有 gcloud CLI 指令設定配額專案,請在 gcloud CLI 設定中使用 billing/quota_project 屬性。您也可以使用 --billing-project 標記為特定指令設定配額專案,這項標記的優先順序高於設定屬性。

如要進一步瞭解 gcloud CLI 設定,請參閱 gcloud config 參考頁面。如要進一步瞭解 --billing-project 標記,請參閱 Google Cloud SDK 參考資料

REST 要求

您可以使用 x-goog-user-project 標頭,在 REST 要求中指定配額專案。提出要求的主體必須具備配額專案的必要權限。

如需更多資訊和程式碼範例,請參閱「使用 REST 要求設定配額專案」。

使用環境變數設定配額專案

部分語言的用戶端程式庫支援使用環境變數設定配額專案。如果您想在不同殼層中設定不同的配額專案,或是覆寫與憑證相關聯的配額專案,這種做法就非常實用。任何要求的主體都必須在環境變數指定的配額專案中,具備必要權限。

環境變數取決於語言:

語言 環境變數
C++

GOOGLE_CLOUD_CPP_USER_PROJECT

C#

GOOGLE_CLOUD_QUOTA_PROJECT

Go

GOOGLE_CLOUD_QUOTA_PROJECT

Java

GOOGLE_CLOUD_QUOTA_PROJECT

Node.js

GOOGLE_CLOUD_QUOTA_PROJECT

Python

GOOGLE_CLOUD_QUOTA_PROJECT

PHP

GOOGLE_CLOUD_QUOTA_PROJECT

Ruby 無法使用

使用驗證憑證設定配額專案

如果未指定配額專案,驗證程式庫會嘗試從用於要求的憑證判斷專案。這個程序取決於用於驗證要求的憑證類型:

  • 服務帳戶:與服務帳戶相關聯的專案會做為配額專案。
  • 使用者憑證:在本地開發環境中,應用程式預設憑證會從本機 ADC 檔案尋找使用者憑證。該檔案也可以指定配額專案。如果您在 Google Cloud CLI 設定中設定專案,且您對該專案具備必要權限,建立本機 ADC 檔案時,系統預設會設定配額專案。您也可以使用 auth application-default set-quota-project 指令,設定 ADC 配額專案。
  • API 金鑰:使用 API 金鑰為要求提供憑證時,系統會將與 API 金鑰相關聯的專案做為配額專案。

設定及使用配額專案的必要權限

如要取得設定專案為配額專案,或在要求中使用該配額專案所需的權限,請要求管理員授予您專案的服務使用情形消費者 (roles/serviceusage.serviceUsageConsumer) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。

這個預先定義的角色包含 serviceusage.services.use 權限,這是將專案設為配額專案,或在要求中使用該配額專案時的必要權限。

您或許還可透過自訂角色或其他預先定義的角色取得這項權限。

如果您使用自己建立的專案做為配額專案,則您擁有必要權限。

如要進一步瞭解權限,請參閱「配額權限」。

設定配額使用者

部分 API 也會限制每位使用者的要求數量,這與本頁先前章節所述的每個專案配額不同。

根據預設,系統會使用已驗證的主體。如果沒有經過驗證的主體,系統會使用用戶端 IP 位址。

如要覆寫配額使用者,可以透過 Cloud API 系統參數設定 quotaUser 參數。如果您指定 quotaUserX-Goog-Quota-User,必須使用設有 IP 位址限制的有效 API 金鑰,才能識別配額專案。否則系統會忽略 quotaUser 參數。

如要進一步瞭解 Cloud API 系統參數及其定義,請參閱系統參數定義表

後續步驟