Gestione delle unità di tenancy

Questa pagina mostra come gestire le unità 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à abitativa 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 in 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 è pensata per l'utilizzo con servizi gestiti e progetti producer di servizi. Devi già avere un progetto Google Cloud e un servizio gestito (ad esempio un servizio creato utilizzando Cloud Endpoints) in quel progetto.
  • Per utilizzare le unità tenancy, l'API Service Consumer Management deve creare progetti tenant nell'organizzazione delproducer di servizir. Assicurati di avere 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 iniziali riportate nella sezione Introduzione all'API Service Consumer Management.
  • Ogni progetto tenant creato in un'unità tenant deve trovarsi anche in una cartella che specifichi nell'ambito della configurazione del progetto tenant. Per questo motivo, per utilizzare le unità tenancy devi disporre di un'organizzazione.

Autenticazione

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.

    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. 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.

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

    REST

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

      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.

    Per saperne di più, consulta la sezione Autenticarsi per l'utilizzo di REST nella documentazione sull'autenticazione di Google Cloud .

    Per informazioni sulla configurazione dell'autenticazione per un ambiente di produzione, consulta Set up Application Default Credentials for code running on 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 normalmente creati quando vengono create risorse nel tuo servizio che dipendono da risorse Google Cloud aggiuntive da eseguire il provisioning per i consumatori.

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

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

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

    La struttura dei dati restituita ha il nome dell'unità 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à tenant creata nel passaggio precedente, utilizza il metodo services.tenancyUnits.addProject:

    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 (qui è tag1), ad esempio una regione, una rete di consumatori o semplicemente un ID stringa.

    Questa chiamata restituisce un'operazione a lunga esecuzione che puoi interrogare per scoprire 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 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 metodo services.tenancyUnits.list, specificando il numero di progetto del consumer di servizi:

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

    Cerca unità di tenancy

    Puoi utilizzare il metodo services.search 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à tenant per liberare risorse e assicurarti che i dati utente vengano eliminati.

    Rimuovi progetti tenant

    Prima di eliminare l'unità di tenancy corrispondente, devi eliminare tutti i progetti tenant. 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
    

    Elimina un'unità di tenancy

    Dopo aver eliminato tutti i progetti tenant in un'unità di tenancy o quando tutti si trovano nello stato DELETED, puoi eliminare l'unità di tenancy utilizzando il metodo services.tenancyUnits.delete:

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