Gestione delle unità di tenancy

Questa pagina mostra come gestire unità di tenancy per il tuo servizio. Un'unità di tenancy è una risorsa leggera che rappresenta la relazione tra un consumer di servizi e un servizio gestito. Ogni consumer di servizi può avere una sola unità di tenancy attiva per un servizio gestito. Questa è 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 tenancy viene generato automaticamente quando la crei. Puoi anche fornire un ID quando chiami il services.tenancyUnits.create metodo. Se fornisci un ID, deve essere univoco a livello globale nell'ambito del tuo servizio gestito per tutti i consumer di servizi.

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 migliore usabilità e affidabilità.

Prima di iniziare

  • L'API Service Consumer Management è destinata all'uso con i servizi gestiti e i progetti di 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 tenant nell'organizzazione del producer di servizi. Assicurati di avere una quota sufficiente per il numero necessario di progetti tenant per i consumer del tuo servizio.
  • Per creare ed eliminare le unità di tenancy, segui le istruzioni di configurazione iniziale in Introduzione all'API Service Consumer Management.
  • Ogni progetto tenant creato in un'unità di tenancy deve trovarsi anche in una cartella che specifichi come parte della configurazione del progetto tenant. Per questo motivo, devi avere un organizzazione per utilizzare le unità di tenancy.

Autenticazione

Seleziona le schede per il modo in cui prevedi di accedere all'API:

gcloud

Installa Google Cloud CLI. Dopo l'installazione, inizializza Google Cloud CLI eseguendo il comando seguente:

gcloud init

Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.

Librerie client

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

  1. Installa Google Cloud CLI.

  2. Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.

  3. Se utilizzi una shell locale, crea le credenziali di autenticazione locali per il tuo account utente:

    gcloud auth application-default login

    Non devi eseguire questa operazione se utilizzi Cloud Shell.

    Se viene restituito un errore di autenticazione e utilizzi un provider di identità (IdP) esterno, verifica di aver acceduto a gcloud CLI con la tua identità federata.

Per saperne di più, consulta Configura ADC per un ambiente di sviluppo locale nella documentazione sull'autenticazione di. Google Cloud

REST

Per utilizzare l'API REST in un ambiente di sviluppo locale, utilizzi le credenziali che fornisci a gcloud CLI.

    Installa Google Cloud CLI.

    Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.

Per saperne di più, consulta Autenticati per usare REST nella Google Cloud documentazione sull'autenticazione di.

Per informazioni sulla configurazione dell'autenticazione per un ambiente di produzione, consulta Configura le credenziali predefinite dell'applicazione per il codice in esecuzione su Google Cloud nella documentazione sull'autenticazione. Google Cloud

Creazione di un'unità di tenancy

Le unità di tenancy e i progetti tenant al loro interno vengono in genere creati quando vengono create risorse nel tuo servizio che dipendono da risorse Google Cloud aggiuntive di cui eseguire il provisioning per i consumer.

Crea un'unità di tenancy utilizzando il services.tenancyUnits.create metodo:

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

Qui, "projects/12345678901" rappresenta il consumer di servizi e service.example.com è il nome del tuo servizio.

La struttura dei dati restituita contiene il nome dell'unità di tenancy, 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, utilizza il services.tenancyUnits.addProject 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 consumer o semplicemente un ID stringa.

Questa chiamata restituisce un'operazione a lunga esecuzione che puoi eseguire una 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 services.tenancyUnits.applyProjectConfig metodo.

Ricerca delle unità di tenancy

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

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

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

Cercare le unità di tenancy

Puoi utilizzare il services.search metodo 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 consumer di servizi smette di utilizzare il tuo servizio, devi rimuovere la sua unità di tenancy per liberare risorse e assicurarti che i dati utente vengano eliminati.

Rimuovere i progetti tenant

Devi eliminare tutti i progetti tenant prima di eliminare l'unità di tenancy corrispondente. Devi utilizzare il services.tenancyUnits.removeProject metodo 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 tenant in un'unità di tenancy o se tutti sono nello stato DELETED, puoi eliminare l'unità di tenancy utilizzando il services.tenancyUnits.delete metodo:

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