Gestione delle unità di tenancy

Questa pagina mostra come gestire le unità di tenancy per il tuo servizio. Un'unità di tenancy è una risorsa leggera che rappresenta la relazione tra un consumatore di servizi e un servizio gestito. Ogni consumatore di servizi può avere solo un'unità di tenancy attiva per un servizio gestito. Si tratta di una funzionalità fornita da Service Infrastructure.

Il nome della risorsa di un'unità di tenancy ha il seguente formato:

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

L'ID di un'unità di locazione viene generato automaticamente al momento della creazione. Puoi anche fornire un ID quando chiami il metodo services.tenancyUnits.create. Se fornisci un ID, questo deve essere univoco a livello globale nell'ambito del tuo servizio gestito per tutti i relativi consumatori.

Gli esempi in questa pagina utilizzano chiamate dirette all'API REST Service Consumer Management. Per l'utilizzo in produzione, ti consigliamo di utilizzare le librerie client fornite da Google per una maggiore usabilità e affidabilità.

Prima di iniziare

  • L'API Service Consumer Management è progettata per essere utilizzata con progetti di servizi gestiti e producer di servizi. Devi già avere un Google Cloud progetto e un servizio gestito (ad esempio un servizio creato utilizzando Cloud Endpoints) in quel progetto.
  • Per utilizzare le unità di tenancy, l'API Service Consumer Management deve creare progetti di tenant nell'organizzazione producer di servizi. Assicurati di disporre di una quota sufficiente per il numero necessario di progetti tenant per i consumatori del tuo servizio.
  • Per creare ed eliminare unità di tenancy, segui le istruzioni di configurazione iniziale riportate in Introduzione all'API Service Consumer Management.
  • Ogni progetto tenant creato in un'unità di tenancy deve trovarsi anche in una cartella specificata nell'ambito della configurazione del progetto tenant. Per questo motivo, devi disporre di un'organizzazione per utilizzare le unità di tenancy.

Autenticazione

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

Librerie client

Per utilizzare le librerie client in un ambiente di sviluppo locale, installa e inizializza gcloud CLI, quindi configura le credenziali predefinite dell'applicazione con le tue credenziali utente.

  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.

Per ulteriori informazioni, consulta Configurare l'ADC per un ambiente di sviluppo locale nella Google Cloud documentazione sull'autenticazione.

REST

Per utilizzare l'API REST in un ambiente di sviluppo locale, utilizza le credenziali fornite all'interfaccia a riga di comando gcloud.

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

    gcloud init

Per ulteriori informazioni, consulta Eseguire l'autenticazione per l'utilizzo di REST nella documentazione Google Cloud sull'autenticazione.

Per informazioni su come configurare l'autenticazione per un ambiente di produzione, consulta Set up Application Default Credentials for code running on Google Cloud nella Google Cloud documentazione sull'autenticazione.

Creazione di un'unità di tenancy

In genere, le unità di tenancy e i progetti tenant al loro interno vengono creati quando vengono create risorse nel tuo servizio che dipendono da risorse Google Cloud aggiuntive da eseguire per i consumatori.

Crea un'unità di tenancy nel seguente modo:

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

In questo caso, "projects/12345678901" rappresenta il consumatore del servizio e service.example.com è il nome del servizio.

La struttura di dati restituita ha il nome dell'unità di locazione, con un ID univoco generato che può essere utilizzato per accedervi. In questo esempio, il nome generato è services/your-service.example.com/projects/12345678901/tenancyUnits/absdef.

Aggiunta di un progetto tenant

Ora puoi aggiungere un progetto per l'utente. Per aggiungere un nuovo progetto tenant all'unità di tenancy creata nel passaggio precedente, chiama il seguente metodo:

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

con i seguenti dati:

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

Il valore tag è un identificatore che fornisci per il progetto all'interno dell'unità di tenancy: può essere qualsiasi cosa tu voglia (qui è tag1), ad esempio una regione, una rete di consumatori o semplicemente un ID stringa.

Questa chiamata restituisce un'operazione a lunga esecuzione su cui puoi eseguire query per verificare se la creazione del progetto è andata a buon fine.

Se devi applicare una configurazione diversa, ad esempio per aggiungere nuovi servizi gestiti, puoi chiamare il metodo services.tenancyUnits.applyProjectConfig.

Ricerca nelle unità di tenancy

Trovare un'unità di tenancy per un consumer di servizi

Per trovare un'unità di tenancy per un determinato consumatore di servizi, utilizza il metodo services.tenancyUnits.ListTenancyUnits specificando il numero di progetto del consumatore di servizi:

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

Cercare le unità di tenancy

Puoi utilizzare il metodo services.tenancyUnits.SearchTenancyUnits per cercare le unità di tenancy definite per il tuo servizio. Ad esempio, la seguente query restituirà tutte le unità che contengono un progetto con il tag "tag1":

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

Pulizia delle unità di tenancy

Quando un consumatore di servizi smette di utilizzare il tuo servizio, devi rimuovere la relativa unità di tenancy per liberare risorse e assicurarti che i dati utente vengano eliminati.

Rimuovere i progetti del tenant

Devi eliminare tutti i progetti del tenant prima di eliminare l'unità di tenancy corrispondente. Devi utilizzare il metodo services.tenancyUnits.removeProject per eliminare un progetto tenant e tutte le risorse al suo interno:

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

Eliminare un'unità di tenancy

Dopo aver eliminato tutti i progetti del tenant in un'unità di tenancy o se tutti sono nello stato DELETED, puoi eliminare l'unità di tenancy:

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