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.
  • Wenn Sie Mandanteneinheiten erstellen und löschen möchten, folgen Sie der Anleitung zur Ersteinrichtung unter Erste Schritte mit der Service Consumer Management API.
  • 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

Select the tabs for how you plan to access the API:

gcloud

    After installing the Google Cloud CLI, initialize it by running the following command:

    gcloud init

    If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

    Clientbibliotheken

    Wenn Sie Clientbibliotheken in einer lokalen Entwicklungsumgebung verwenden möchten, installieren und initialisieren Sie die gcloud CLI und richten Sie dann die Standardanmeldedaten für Anwendungen mit Ihren Nutzeranmeldedaten ein.

    1. Install the Google Cloud CLI.

    2. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

    3. To initialize the gcloud CLI, run the following command:

      gcloud init
    4. 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.

      If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.

    Weitere Informationen finden Sie in der Dokumentation zur Google Cloud -Authentifizierung unter ADC für eine lokale Entwicklungsumgebung einrichten.

    REST

    Wenn Sie die REST API in einer lokalen Entwicklungsumgebung verwenden möchten, verwenden Sie die Anmeldedaten, die Sie der gcloud CLI bereitstellen.

      After installing the Google Cloud CLI, initialize it by running the following command:

      gcloud init

      If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

    Weitere Informationen finden Sie in der Dokumentation zur Google Cloud -Authentifizierung unter Für die Verwendung von REST authentifizieren.

    Informationen zum Einrichten der Authentifizierung für eine Produktionsumgebung finden Sie in der Google Cloud -Authentifizierungsdokumentation unter Set up Application Default Credentials for code running on Google Cloud.

    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 mit der Methode services.tenancyUnits.create:

    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. Verwenden Sie die Methode services.tenancyUnits.addProject, 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 services.tenancyUnits.list-Methode 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.search 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 mit der Methode services.tenancyUnits.delete löschen:

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