本頁面說明如何管理服務的獨立租用環境。獨立租用環境是輕量資源,代表服務消費者與代管服務之間的關係。每位服務消費者只能有一個代管服務的獨立租用環境。這是 Service Infrastructure 提供的功能。
獨立租用環境的資源名稱格式如下:
services/{your service name}/projects/{consumer project number}/tenancyUnits/{id}
建立獨立租用環境時,系統會自動生成 ID。您也可以在呼叫 services.tenancyUnits.create 方法時提供 ID。如果您提供 ID,則在代管服務範圍內,所有服務消費者的 ID 均不得重複。
本頁範例直接呼叫服務消費者管理 REST API。在正式環境中,建議您使用 Google 提供的用戶端程式庫,以提升可用性和可靠性。
事前準備
- Service Consumer Management API 適用於代管服務和服務生產者專案。您必須先擁有 Google Cloud 專案,以及該專案中的代管服務 (例如使用 Cloud Endpoints 建立的服務)。
- 如要使用獨立租用環境,Service Consumer Management API 必須在服務生產者組織中建立租戶專案。請確認您有足夠的配額,可為服務消費者建立必要數量的租戶專案。
- 如要建立及刪除獨立租用環境,請按照「開始使用 Service Consumer Management API」中的初始設定操作說明進行。
- 在獨立租用環境中建立的每個租戶專案,也必須位於您在租戶專案設定中指定的資料夾。因此,您必須有機構才能使用獨立租用環境。
驗證
根據您打算存取 API 的方式,選取對應的分頁標籤:
gcloud
安裝 Google Cloud CLI。 安裝完成後,請執行下列指令,初始化 Google Cloud CLI:
gcloud init若您採用的是外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。
用戶端程式庫
如要在本機開發環境中使用用戶端程式庫,請安裝並初始化 gcloud CLI,然後使用使用者憑證設定應用程式預設憑證。
-
安裝 Google Cloud CLI。
-
若您採用的是外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。
-
如果您使用的是本機殼層,請為使用者帳戶建立本機驗證憑證:
gcloud auth application-default login
如果您使用的是 Cloud Shell,則不必執行這項操作。
如果系統傳回驗證錯誤,且您使用的是外部識別資訊提供者 (IdP),請確認您已 使用聯合身分登入 gcloud CLI。
詳情請參閱 Google Cloud 驗證說明文件中的「 為本機開發環境設定 ADC」。
REST
如要在本機開發環境中使用 REST API,請使用提供給 gcloud CLI 的憑證。
安裝 Google Cloud CLI。
若您採用的是外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。
詳情請參閱 Google Cloud 驗證說明文件中的「使用 REST 進行驗證」一節。
如要瞭解如何設定正式環境的驗證機制,請參閱 Google Cloud 驗證說明文件中的「 為在 Google Cloud上執行的程式碼設定應用程式預設憑證 」。
建立獨立租用環境
當您在自己的服務中建立資源,而這些資源需要為消費者佈建額外的 Google Cloud 資源時,通常會建立獨立租用環境和其中的租戶專案。
您可以使用 services.tenancyUnits.create 方法建立租賃單位:
POST https://serviceconsumermanagement.googleapis.com/v1/services/service.example.com/projects/12345678901/tenancyUnits
其中「projects/12345678901」代表服務消費者,service.example.com 則是服務名稱。
傳回的資料結構包含獨立租用環境的名稱,以及產生的專屬 ID,可用於存取該環境。在這個範例中,產生的名稱為 services/your-service.example.com/projects/12345678901/tenancyUnits/absdef。
新增用戶群專案
您現在可以為使用者新增專案。如要將新的租戶專案新增至上一步建立的租用單位,請使用 services.tenancyUnits.addProject 方法:
POST https://serviceconsumermanagement.googleapis.com/v1/services/your-service.example.com/projects/12345678901/tenancyUnits/absdef:addProject
包含下列資料:
{"tag":"tag1", "project_config":{"folder":"folders/9876543210", "tenant_project_policy":{"policy_bindings":{"role":"roles/owner", "members":"user:bob@example.com"}}, "billing_config":{"billing_account":"billingAccounts/123456-472F22-28F9AA"}}}
tag 值是您為租用單位中的專案提供的 ID:可以是任何您喜歡的值 (此處為 tag1),例如區域、消費者網路或字串 ID。
這個呼叫會傳回長時間執行的作業,您可以查詢專案是否成功建立。
如需套用其他設定 (例如新增代管服務),可以呼叫 services.tenancyUnits.applyProjectConfig 方法。
搜尋您的獨立租用環境
找出服務用戶的獨立租用環境
如要尋找特定服務消費者的獨立租用環境,請使用 services.tenancyUnits.list 方法,並指定服務消費者的專案編號:
GET https://serviceconsumermanagement.googleapis.com/v1/services/your-service.example.com/projects/12345678901/tenancyUnits
搜尋獨立租用環境
您可以使用 services.search 方法,搜尋為服務定義的獨立租用環境。舉例來說,以下查詢會傳回所有內含「tag1」標記的專案所屬的獨立租用環境:
GET https://serviceconsumermanagement.googleapis.com/v1/services/your-service.example.com:search?query=tenant_resources.tag=tag1
清除獨立租用環境
當服務消費者停止使用您的服務時,您需要移除其獨立租用環境,以釋出資源並確保使用者資料已刪除。
移除用戶群專案
您必須先刪除所有租戶專案,才能刪除對應的獨立租用環境。您應使用 services.tenancyUnits.removeProject 方法刪除租戶專案及其中的所有資源:
POST https://serviceconsumermanagement.googleapis.com/v1/services/your-service.example.com/projects/12345678901/tenancyUnits/absdef:removeProject
刪除獨立租用環境
刪除獨立租用環境中的所有租戶專案,或所有專案都處於 DELETED 狀態後,您可以使用 services.tenancyUnits.delete 方法刪除獨立租用環境:
DELETE https://serviceconsumermanagement.googleapis.com/v1/services/your-service.example.com/projects/12345678901/tenancyUnits/absdef