Gérer les unités de location

Cette page explique comment gérer les unités de location pour votre service. Une unité de location est une ressource légère qui représente la relation entre un client de service et un service géré. Chaque client de service ne peut avoir qu'une seule unité de location active pour un service géré. Il s'agit d'une fonctionnalité fournie par Service Infrastructure.

Le nom de ressource d'une unité de location suit le format ci-dessous :

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

L'ID d'une unité de location est généré automatiquement lors de sa création. Vous pouvez également fournir un ID lorsque vous appelez la méthode services.tenancyUnits.create. Si vous fournissez un ID, il doit être globalement unique dans le champ d'application de votre service géré, pour tous les clients du service.

Les exemples présentés sur cette page utilisent des appels directs à l'API REST Service Consumer Management. Pour une utilisation en production, nous vous recommandons d'utiliser les bibliothèques clientes fournies par Google, qui vous offrent davantage de facilité d'utilisation et de fiabilité.

Avant de commencer

  • L'API Service Consumer Management est conçue pour être utilisée avec des services gérés et des projets producteurs de services. Vous devez déjà disposer d'un projet Google Cloud et d'un service géré (tel qu'un service créé à l'aide de Cloud Endpoints) dans ce projet.
  • Pour utiliser des unités de location, l'API Service Consumer Management doit créer des projets locataires dans votre organisation de production de services. Assurez-vous de disposer d'un quota d'utilisation suffisant pour le nombre de projets locataires requis pour les clients de votre service.
  • Pour créer et supprimer des unités de location, suivez les instructions de configuration initiale fournies à la page Premiers pas avec l'API Service Consumer Management.
  • Chaque projet locataire créé dans une unité de location doit également figurer dans un dossier que vous spécifiez dans la configuration du projet locataire. C'est pourquoi vous avez besoin d'une organisation pour utiliser des unités de location.

Authentification

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

Bibliothèques clientes

Pour utiliser des bibliothèques clientes dans un environnement de développement local, installez et initialisez gcloud CLI, puis configurez le service Identifiants par défaut de l'application avec vos identifiants utilisateur.

  1. Install the Google Cloud CLI.
  2. To initialize the gcloud CLI, run the following command:

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

Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local dans la documentation sur l'authentification Google Cloud.

REST

Pour utiliser l'API REST dans un environnement de développement local, vous devez utiliser les identifiants que vous fournissez à gcloud CLI.

    Install the Google Cloud CLI, then initialize it by running the following command:

    gcloud init

Pour en savoir plus, consultez la section S'authentifier pour utiliser REST dans la documentation sur l'authentification Google Cloud.

Pour en savoir plus sur la configuration de l'authentification dans un environnement de production, consultez Set up Application Default Credentials for code running on Google Cloud dans la documentation sur l'authentification Google Cloud.

Créer une unité de location

Les unités de location et les projets locataires sont normalement créés lorsqu'il y a création de ressources dans votre propre service qui dépendent de ressources Google Cloud supplémentaires à provisionner pour les clients du service.

Pour créer une unité de location, procédez comme suit :

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

Ici, "projects/12345678901" représente le client du service et service.example.com est le nom de votre service.

La structure de données renvoyée porte le nom de l'unité de location et contient un identifiant unique pouvant être utilisé pour y accéder. Dans cet exemple, le nom généré est services/your-service.example.com/projects/12345678901/tenancyUnits/absdef.

Ajouter un projet locataire

Vous pouvez maintenant ajouter un projet pour l'utilisateur. Pour ajouter un projet locataire à l'unité de location créée à l'étape précédente, appelez la méthode suivante :

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

avec les données suivantes :

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

La valeur tag est un identifiant de votre choix que vous fournissez pour le projet au sein de l'unité de location (ici, il s'agit de tag1). Cela peut être une région, un réseau de client ou simplement un ID de chaîne.

Cet appel affiche une opération de longue durée que vous pouvez interroger pour déterminer si le projet a été créé avec succès.

Si vous devez appliquer une configuration différente, par exemple pour ajouter des services gérés, vous pouvez appeler la méthode services.tenancyUnits.applyProjectConfig.

Rechercher des unités de location

Trouver une unité de location pour un client de service

Pour rechercher l'unité de location correspondant à un client de service spécifique, appelez la méthode services.tenancyUnits.ListTenancyUnits en spécifiant le numéro du projet client de service :

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

Rechercher des unités de location

Vous pouvez utiliser la méthode services.tenancyUnits.SearchTenancyUnits pour rechercher des unités de location définies pour votre service. Par exemple, la requête suivante va afficher toutes les unités contenant un projet avec le tag "tag1" :

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

Nettoyer des unités de location

Lorsqu'un client cesse d'utiliser votre service, vous devez supprimer son unité de location afin de libérer les ressources et de garantir la suppression des données utilisateur.

Supprimer des projets locataires

Vous devez supprimer tous les projets locataires avant de pouvoir supprimer l'unité de location correspondante. Utilisez la méthode services.tenancyUnits.removeProject pour supprimer un projet locataire et toutes les ressources qu'il contient :

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

Supprimer une unité de location

Une fois que vous avez supprimé tous les projets locataires d'une unité de location ou qu'ils se trouvent tous dans l'état DELETED, vous pouvez supprimer l'unité de location comme suit :

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