Mandanteneinheiten verwalten

Auf dieser Seite erfahren Sie, wie Sie Mandanteneinheiten für Ihren Dienst verwalten. Eine Mandanteneinheit ist eine einfache Ressource, die die Beziehung zwischen einem Dienstnutzer und einem verwalteten Dienst darstellt. Jeder Dienstnutzer kann nur eine aktive Mandanteneinheit für einen verwalteten Dienst haben. Diese Funktion wird von Service Infrastructure bereitgestellt.

Der Ressourcenname einer Mandanteneinheit hat das folgende Format:

services/{your service name}/projects/{consumer project number}/tenancyUnits/{id}

Die ID einer Mandanteneinheit wird beim Erstellen automatisch generiert. Sie können auch eine ID angeben, wenn Sie die Methode services.tenancyUnits.create aufrufen. Wenn Sie eine ID angeben, muss sie global innerhalb des Bereichs Ihres verwalteten Dienstes für alle Dienstnutzer eindeutig sein.

In den Beispielen auf dieser Seite wird direkt die Dienstnutzerverwaltung REST API aufgerufen. Für eine produktive Nutzung empfehlen wir die Verwendung der von Google bereitgestellten Clientbibliotheken zur Verbesserung der Nutzerfreundlichkeit und Zuverlässigkeit.

Hinweis

  • Die Service Consumer Management API ist für die Verwendung mit verwalteten Diensten und Diensterstellerprojekten vorgesehen. Sie müssen bereits ein Google Cloud-Projekt und einen verwalteten Dienst (z. B. einen Dienst, der mit Cloud Endpoints erstellt wurde) in diesem Projekt haben.
  • Damit Mandanteneinheiten verwendet werden können, muss die Service Consumer Management API Mandantenprojekte in Ihrer Diensterstellerorganisation erstellen. Achten Sie darauf, dass Sie über ein ausreichendes Kontingent für die erforderliche Anzahl von Mandantenprojekten für die Nutzer Ihres Dienstes verfügen.
  • Jedes in einer Mandanteneinheit erstellte Mandantenprojekt muss sich auch in einem Ordner befinden, den Sie als Teil der Mandantenprojektkonfiguration angeben. Aus diesem Grund benötigen Sie eine Organisation, um Mandanteneinheiten nutzen zu können.

Authentifizierung

Cloud APIs wie die Service Consumer Management API nehmen nur authentifizierte Aufrufe an. Falls Sie kein Dienstkonto haben, finden Sie unter Erste Schritte bei der Authentifizierung eine Anleitung zum Erstellen eines Dienstkontos und zum Abrufen eines JSON-Schlüssels für die Authentifizierung bei Cloud APIs. Wenn Sie eine Google-Clientbibliothek verwenden, können Sie Ihre Umgebung so einrichten, dass die Anmeldedaten Ihres Dienstkontos standardmäßig verwendet werden. Für direkte Aufrufe der REST API müssen Sie in jedem Header ein Zugriffstoken bereitstellen. Beispiel:

curl --header "Authorization: Bearer ${ACCESS_TOKEN}" --header 'Content-Type: application/json' --data '{"tag":"tag1", "project_config":{"folder":"folders/9876543210", "tenant_project_policy": {"policy_bindings":{"role":"roles/owner", "members":"user:user1@company.com"}}, "billing_config":{"billing_account":"billingAccounts/123456-472F22-28F9AA"}}}' -X POST "https://serviceconsumermanagement.googleapis.com/v1/services/your-service.example.com/consumers/12345678901/tenancyUnits/tu-hello:addProject"

Damit Sie Mandanteneinheiten erstellen und löschen können, müssen Sie die Schritte zur Ersteinrichtung unter Erste Schritte mit der Service Consumer Management API ausführen.

Mandanteneinheit erstellen

Mandanteneinheiten und die darin enthaltenen Mandantenprojekte werden normalerweise erstellt, wenn Ressourcen in Ihrem eigenen Dienst erstellt werden, die von zusätzlichen Google Cloud-Ressourcen abhängen, welche für die Nutzer bereitgestellt werden sollen.

So erstellen Sie eine Mandanteneinheit:

POST https://serviceconsumermanagement.googleapis.com/v1/services/service.example.com/projects/12345678901/tenancyUnits

Hier stellt "projects/12345678901" den Dienstnutzer dar und service.example.com ist der Name Ihres Dienstes.

Die zurückgegebene Datenstruktur hat den Namen der Mandanteneinheit und eine einmalig generierte ID, über die auf die Mandanteneinheit zugegriffen werden kann. In diesem Beispiel lautet der generierte Name services/your-service.example.com/projects/12345678901/tenancyUnits/absdef.

Mandantenprojekt hinzufügen

Sie können jetzt ein Projekt für den Nutzer hinzufügen. Rufen Sie folgende Methode auf, um der im vorherigen Schritt erstellten Mandanteneinheit ein neues Mandantenprojekt hinzuzufügen:

POST https://serviceconsumermanagement.googleapis.com/v1/services/your-service.example.com/projects/12345678901/tenancyUnits/absdef:addProject

Hierbei werden folgende Daten verwendet:

{"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"}}}

Der Wert von tag ist eine Kennzeichnung, die Sie dem Projekt in der Mandanteneinheit zuweisen. Hier lautet er tag1, Sie können aber auch einen beliebigen Wert wie eine Region, ein Nutzernetzwerk oder nur eine String-ID verwenden.

Dieser Aufruf gibt einen lange laufenden Vorgang zurück, den Sie abfragen können, um die erfolgreiche Projekterstellung zu bestätigen.

Wenn Sie eine andere Konfiguration anwenden müssen, um beispielsweise neue verwaltete Dienste hinzuzufügen, rufen Sie die Methode services.tenancyUnits.applyProjectConfig auf.

Mandanteneinheiten suchen

Mandanteneinheit für einen Dienstnutzer suchen

Mit der Methode services.tenancyUnits.ListTenancyUnits können Sie eine Mandanteneinheit für einen bestimmten Dienstnutzer ermitteln. Geben Sie dazu die Nummer des zugehörigen Dienstnutzerprojekts an:

GET https://serviceconsumermanagement.googleapis.com/v1/services/your-service.example.com/projects/12345678901/tenancyUnits

Mandanteneinheiten suchen

Mit der Methode services.tenancyUnits.SearchTenancyUnits können Sie nach Mandanteneinheiten suchen, die für Ihren Dienst definiert sind. Die folgende Abfrage gibt beispielsweise alle Mandanteneinheiten zurück, die ein Projekt mit dem Tag "tag1" enthalten.

GET https://serviceconsumermanagement.googleapis.com/v1/services/your-service.example.com:search?query=tenant_resources.tag=tag1

Mandanteneinheiten bereinigen

Wenn ein Dienstnutzer Ihren Dienst nicht mehr verwendet, müssen Sie seine Mandanteneinheit entfernen, um Ressourcen freizugeben und zu gewährleisten, dass die Nutzerdaten gelöscht werden.

Mandanteneinheiten entfernen

Sie müssen alle Mandantenprojekte löschen, bevor Sie die entsprechende Mandanteneinheit löschen. Sie sollten die Methode services.tenancyUnits.removeProject verwenden, um ein Mandantenprojekt und alle darin enthaltenen Ressourcen zu löschen:

POST https://serviceconsumermanagement.googleapis.com/v1/services/your-service.example.com/projects/12345678901/tenancyUnits/absdef:removeProject

Mandanteneinheiten löschen

Nachdem Sie alle Mandantenprojekte aus einer Mandanteneinheit gelöscht haben oder sich alle im Status DELETED befinden, können Sie die Mandanteneinheit löschen:

DELETE https://serviceconsumermanagement.googleapis.com/v1/services/your-service.example.com/projects/12345678901/tenancyUnits/absdef