本頁說明如何為以用戶端為基礎的 API 設定配額專案。如要瞭解配額專案的用途、如何設定配額 API,以及配額專案的決定方式,請參閱「關於配額專案」。
如果您向以用戶端為準的 API 提出要求,但系統無法識別配額專案,要求可能會失敗。配額專案可透過多種方式設定,並透過檢查下列選項進行驗證。系統會依優先順序顯示這些項目:
API 金鑰:如果您使用 API 金鑰為要求提供憑證,系統會將與 API 金鑰相關聯的專案做為配額專案。
Google Cloud CLI 憑證:如果您使用 gcloud CLI 取得存取權杖,並已透過使用者憑證向 gcloud CLI 進行驗證,系統有時會使用 gcloud CLI 共用專案做為配額專案。不過,並非所有以用戶端為基礎的 API 都會改用共用專案。
服務帳戶:如果 API 呼叫的主體是服務帳戶 (包括模擬),則與服務帳戶相關聯的專案會做為配額專案。
員工身分聯盟:如果 API 的主體是員工身分聯盟使用者,則員工集區使用者專案會做為配額專案。
如果先前的檢查都未產生配額專案,要求就會失敗。
設定配額專案的方式有很多種,如果配額專案是透過多種方法指定,系統會套用下列優先順序:
- 透過程式輔助方式
- 環境變數
- 用於驗證要求的憑證
透過程式設定配額專案
您可以在應用程式中明確設定配額專案。這個方法會覆寫所有其他定義。用於驗證要求的主體必須在指定的配額專案中擁有必要權限。
以程式輔助方式設定配額專案時,方法取決於您使用的是用戶端程式庫、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++ |
|
C# |
|
Go |
|
Java |
|
Node.js |
|
Python |
|
PHP |
|
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
參數。如果您指定 quotaUser
或 X-Goog-Quota-User
,必須使用設有 IP 位址限制的有效 API 金鑰,才能識別配額專案。否則系統會忽略 quotaUser
參數。
如要進一步瞭解 Cloud API 系統參數及其定義,請參閱系統參數定義表。