このページでは、サービスのテナンシー ユニットの管理方法について説明します。テナンシー ユニットとは、サービス ユーザーとマネージド サービスの関係を表す軽量のリソースです。各サービス ユーザーが所有できるアクティブ テナンシー ユニットは、1 つのマネージド サービスに対して 1 つだけです。これは、Service Infrastructure が提供する機能です。
テナンシー ユニットのリソース名の形式は次のとおりです。
services/{your service name}/projects/{consumer project number}/tenancyUnits/{id}
テナンシー ユニットの ID は、作成するときに自動的に生成されます。services.tenancyUnits.create
メソッドを呼び出すときに ID を指定することもできます。ID を指定する場合、その ID は、すべてのサービス ユーザーにおけるマネージド サービスの範囲内でグローバルに一意である必要があります。
このページの例は、Service Consumer Management REST API への直接呼び出しを使用します。本番環境で使用する場合は、Google の提供するクライアント ライブラリを使用してユーザビリティと信頼性を高めることをおすすめします。
始める前に
- Service Consumer Management API は、マネージド サービスとサービス プロデューサー プロジェクトで使用することを目的としています。このプロジェクトでは、Google Cloud プロジェクトとマネージド サービス(Cloud Endpointsを使用して作成されたサービスなど)がすでに存在している必要があります。
- テナンシー ユニットを使用するには、Service Consumer Management API でサービス プロデューサー組織内にテナント プロジェクトを作成する必要があります。サービスのユーザーに必要な数のテナント プロジェクトに十分な割り当てがあることを確認します。
- テナンシー ユニットを作成、削除するには、Service Consumer Management API スタートガイドの初期設定手順に沿って操作します。
- テナンシー ユニットで作成された各テナント プロジェクトは、テナント プロジェクト構成の一部として指定するフォルダにも存在する必要があります。このため、テナンシー ユニットを使用するには組織が必要です。
認証
Select the tabs for how you plan to access the API:
gcloud
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
クライアント ライブラリ
ローカル開発環境でクライアント ライブラリを使用するには、gcloud CLI をインストールして初期化し、ユーザー認証情報を使用してアプリケーションのデフォルト認証情報を設定します。
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
詳細については、 Google Cloud 認証ドキュメントの ローカル開発環境に ADC を設定するをご覧ください。
REST
ローカル開発環境で REST API を使用するには、gcloud CLI に指定した認証情報を使用します。
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
詳細については、 Google Cloud 認証ドキュメントの REST を使用して認証するをご覧ください。
本番環境での認証の設定については、 Google Cloud 認証に関するドキュメントの Set up Application Default Credentials for code running on Google Cloud をご覧ください。
テナンシー ユニットを作成する
通常、テナンシー ユニットとその中のテナント プロジェクトは、サービスのリソースが作成されるときに作成され、ユーザー用にプロビジョニングされる追加の Google Cloud リソースに依存します。
次のように、テナンシー ユニットを作成します。
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
です。
テナント プロジェクトを追加する
これで、ユーザーのプロジェクトを追加できます。前の手順で作成したテナンシー ユニットに新しいテナント プロジェクトを追加するには、次のメソッドを呼び出します。
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 です。この ID には、リージョン、ユーザー ネットワーク、文字列 ID など任意のものを使用できます(ここでは tag1
を使用しています)。
この呼び出しは、長時間実行オペレーションを返します。このオペレーションをクエリで使用し、プロジェクトの作成に成功したかどうかを確認します。
新しいマネージド サービスを追加するなど、別の構成を適用する必要がある場合は、services.tenancyUnits.applyProjectConfig
メソッドを呼び出すことができます。
テナンシー ユニットを検索する
サービス ユーザーのテナンシー ユニットを検索する
特定のサービス ユーザーのテナンシー ユニットを検索するには、services.tenancyUnits.ListTenancyUnits
メソッドを使用して、サービス ユーザーのプロジェクト番号を指定します。
GET https://serviceconsumermanagement.googleapis.com/v1/services/your-service.example.com/projects/12345678901/tenancyUnits
テナンシー ユニットを検索する
サービスに定義されたテナンシー ユニットを検索するには、services.tenancyUnits.SearchTenancyUnits
メソッドを使用できます。たとえば次のクエリは、「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
状態になった後、テナンシー ユニットを削除できます。
DELETE https://serviceconsumermanagement.googleapis.com/v1/services/your-service.example.com/projects/12345678901/tenancyUnits/absdef
特に記載のない限り、このページのコンテンツはクリエイティブ・コモンズの表示 4.0 ライセンスにより使用許諾されます。コードサンプルは Apache 2.0 ライセンスにより使用許諾されます。詳しくは、Google Developers サイトのポリシーをご覧ください。Java は Oracle および関連会社の登録商標です。
最終更新日 2025-01-31 UTC。