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. Zu jedem verwalteten Dienst kann nur eine einzige aktive Mandanteneinheit für einen verwalteten Dienst gehören. Dieses Feature wird von Service Infrastructure bereitgestellt.

Der Ressourcenname einer Mandanteneinheit hat folgendes Format:

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

Die ID einer Mandanteneinheit wird automatisch generiert, wenn Sie die Einheit erstellen. Sie können die ID auch angeben, wenn Sie die Methode services.tenancyUnits.create aufrufen. Falls Sie eine ID angeben, muss sie in Bezug auf Ihren verwalteten Dienst für alle Dienstnutzer global eindeutig sein.

In den Beispielen auf dieser Seite wird die Service Consumer Management REST API direkt aufgerufen. Für die Nutzung in der Produktionsumgebung sollten Sie die von Google bereitgestellten Clientbibliotheken verwenden, um die Nutzerfreundlichkeit und Zuverlässigkeit zu erhöhen.

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 also darauf, dass Ihr Kontingent für die erforderlichen Mandantenprojekte für die Nutzer Ihres Dienstes ausreicht.
  • 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

In diesem Fall steht „projects/12345678901“ für den Dienstnutzer 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. Zum Löschen eines Mandantenprojekts und aller darin enthaltenen Ressourcen sollten Sie die Methode services.tenancyUnits.removeProject verwenden:

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