Nozioni di base sul tenant

Tenant sono entità proprietarie di job e oggetti aziendali assegnati. Creano un livello intermedio di organizzazione tra un progetto Google Cloud e i dati caricati. I tenant ti consentono di isolare diversi raggruppamenti dei dati senza la necessità di creare più progetti, impedendo la oltre le barriere della tenancy. L'architettura multi-tenancy è utile in cui potresti avere più di un cliente e non voler condividere i dati tra loro, ma vorresti mantenere un unico ambiente Google Cloud per fatturazione e reporting interni. Ad esempio:

  • Fornitori di siti di lavoro che creano siti di lavoro per le organizzazioni con più società controllate.
  • Assumere agenzie che creano sistemi di monitoraggio dei candidati per più attività.

A ogni progetto Google Cloud viene assegnato un tenant_id per un singolo progetto predefinito tenant. Facoltativamente, puoi modificare l'impostazione predefinita creando più di un tenant all'interno di un determinato progetto.

I tenant sono completamente isolati tra loro. Tutte le API richiedono un solo tenant per impedire la query dei dati su più tenant in una singola chiamata API. Analogamente, il machine learning (ML) tratta i tenant come unità discrete e non supera le barriere della tenancy. Un progetto può supportare tutti i tenant obbligatorio.

tenant predefiniti

In Job Search v4 e versioni successive, è richiesta un'entità tenant. A tutti i progetti viene assegnato un tenant_id per un singolo tenant predefinito. Se non vuoi utilizzare più tenant, puoi:

  1. Utilizza il tenant predefinito del progetto (consigliato). Non è necessario fare riferimento al tenant in modo specifico per fare ciò. Puoi utilizzare il formato projects/{project_id}/jobs/{job_id} e il backend di Cloud Talent Solution presumerà che tu stia utilizzando il tenant predefinito.

  2. Crea un singolo tenant e utilizzalo al posto del tenant predefinito. Se crei il tuo tenant, devi fare riferimento a questo: projects/{project_id}/tenants/{tenant_id}/jobs/{job_id}.

Il valore tenant_id predefinito è univoco per ogni progetto e non viene mai sovrascritto o sostituite se crei tenant aggiuntivi. Non puoi chiamare i metodi CRUD nel tenant predefinito.

(Facoltativo) I tenant creati

La creazione dei tuoi tenant è facoltativa. A ogni progetto Job Search viene assegnato tenant predefinito dal backend CTS. Se non vuoi utilizzare la multitenancy per separare le suddivisioni dei dati, ti consigliamo di utilizzare l'utente predefinito.

Crea un tenant

Devi creare un valore externalId univoco e assegnarlo al nuovo tenant. La chiamata restituisce quindi un name univoco assegnato dal nostro sistema di backend, anche assegnato a quell'tenant. Assicurati di registrare e memorizzare entrambi i valori name e externalId, poiché vengono utilizzati per aggiornare/eliminare/fare riferimento.

Il codice di esempio riportato di seguito crea un nuovo tenant:

Java

Per scoprire come installare e utilizzare la libreria client per CTS, consulta Librerie client CTS. Per ulteriori informazioni, consulta API Java di CTS documentazione di riferimento.

Per autenticarti a CTS, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.


import com.google.cloud.talent.v4.CreateTenantRequest;
import com.google.cloud.talent.v4.ProjectName;
import com.google.cloud.talent.v4.Tenant;
import com.google.cloud.talent.v4.TenantServiceClient;
import java.io.IOException;

public class JobSearchCreateTenant {

  public static void createTenant() throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String projectId = "your-project-id";
    String externalId = "your-external-id";
    createTenant(projectId, externalId);
  }

  // Create Tenant for scoping resources, e.g. companies and jobs.
  public static void createTenant(String projectId, String externalId) throws IOException {
    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests. After completing all of your requests, call
    // the "close" method on the client to safely clean up any remaining background resources.
    try (TenantServiceClient tenantServiceClient = TenantServiceClient.create()) {
      ProjectName parent = ProjectName.of(projectId);
      Tenant tenant = Tenant.newBuilder().setExternalId(externalId).build();

      CreateTenantRequest request =
          CreateTenantRequest.newBuilder().setParent(parent.toString()).setTenant(tenant).build();

      Tenant response = tenantServiceClient.createTenant(request);
      System.out.println("Created Tenant");
      System.out.format("Name: %s%n", response.getName());
      System.out.format("External ID: %s%n", response.getExternalId());
    }
  }
}

Node.js

Per scoprire come installare e utilizzare la libreria client per CTS, consulta Librerie client CTS. Per ulteriori informazioni, consulta API Node.js di CTS documentazione di riferimento.

Per autenticarti a CTS, configura le credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.


const talent = require('@google-cloud/talent').v4;

/** Create Tenant for scoping resources, e.g. companies and jobs */
function sampleCreateTenant(projectId, externalId) {
  const client = new talent.TenantServiceClient();
  // const projectId = 'Your Google Cloud Project ID';
  // const externalId = 'Your Unique Identifier for Tenant';
  const formattedParent = client.projectPath(projectId);
  const tenant = {
    externalId: externalId,
  };
  const request = {
    parent: formattedParent,
    tenant: tenant,
  };
  client
    .createTenant(request)
    .then(responses => {
      const response = responses[0];
      console.log('Created Tenant');
      console.log(`Name: ${response.name}`);
      console.log(`External ID: ${response.externalId}`);
    })
    .catch(err => {
      console.error(err);
    });
}

Python

Per informazioni su come installare e utilizzare la libreria client per CTS, consulta Librerie client di CTS. Per ulteriori informazioni, consulta API Python di CTS documentazione di riferimento.

Per eseguire l'autenticazione su CTS, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.


from google.cloud import talent


def create_tenant(project_id, external_id):
    """Create Tenant for scoping resources, e.g. companies and jobs"""

    client = talent.TenantServiceClient()

    # project_id = 'Your Google Cloud Project ID'
    # external_id = 'Your Unique Identifier for Tenant'

    if isinstance(project_id, bytes):
        project_id = project_id.decode("utf-8")
    if isinstance(external_id, bytes):
        external_id = external_id.decode("utf-8")
    parent = f"projects/{project_id}"
    tenant = talent.Tenant(external_id=external_id)

    response = client.create_tenant(parent=parent, tenant=tenant)
    print("Created Tenant")
    print(f"Name: {response.name}")
    print(f"External ID: {response.external_id}")
    return response.name

Recupera un tenant

Java

Per informazioni su come installare e utilizzare la libreria client per CTS, consulta Librerie client di CTS. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API CTS Java.

Per eseguire l'autenticazione su CTS, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.


import com.google.cloud.talent.v4.GetTenantRequest;
import com.google.cloud.talent.v4.Tenant;
import com.google.cloud.talent.v4.TenantName;
import com.google.cloud.talent.v4.TenantServiceClient;
import java.io.IOException;

public class JobSearchGetTenant {

  public static void getTenant() throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String projectId = "your-project-id";
    String tenantId = "your-tenant-id";
    getTenant(projectId, tenantId);
  }

  // Get Tenant by name.
  public static void getTenant(String projectId, String tenantId) throws IOException {
    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests. After completing all of your requests, call
    // the "close" method on the client to safely clean up any remaining background resources.
    try (TenantServiceClient tenantServiceClient = TenantServiceClient.create()) {
      TenantName name = TenantName.of(projectId, tenantId);

      GetTenantRequest request = GetTenantRequest.newBuilder().setName(name.toString()).build();

      Tenant response = tenantServiceClient.getTenant(request);
      System.out.format("Name: %s%n", response.getName());
      System.out.format("External ID: %s%n", response.getExternalId());
    }
  }
}

Python

Per informazioni su come installare e utilizzare la libreria client per CTS, consulta Librerie client di CTS. Per ulteriori informazioni, consulta API Python di CTS documentazione di riferimento.

Per eseguire l'autenticazione su CTS, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.


from google.cloud import talent


def get_tenant(project_id, tenant_id):
    """Get Tenant by name"""

    client = talent.TenantServiceClient()

    # project_id = 'Your Google Cloud Project ID'
    # tenant_id = 'Your Tenant ID'

    if isinstance(project_id, bytes):
        project_id = project_id.decode("utf-8")
    if isinstance(tenant_id, bytes):
        tenant_id = tenant_id.decode("utf-8")
    name = client.tenant_path(project_id, tenant_id)

    response = client.get_tenant(name=name)
    print(f"Name: {response.name}")
    print(f"External ID: {response.external_id}")

Elenca tenant

Java

Per informazioni su come installare e utilizzare la libreria client per CTS, consulta Librerie client di CTS. Per ulteriori informazioni, consulta API Java di CTS documentazione di riferimento.

Per autenticarti a CTS, configura le credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.


import com.google.cloud.talent.v4.ListTenantsRequest;
import com.google.cloud.talent.v4.ProjectName;
import com.google.cloud.talent.v4.Tenant;
import com.google.cloud.talent.v4.TenantServiceClient;
import java.io.IOException;

public class JobSearchListTenants {

  public static void listTenants() throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String projectId = "your-project-id";
    listTenants(projectId);
  }

  // List Tenants.
  public static void listTenants(String projectId) throws IOException {
    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests. After completing all of your requests, call
    // the "close" method on the client to safely clean up any remaining background resources.
    try (TenantServiceClient tenantServiceClient = TenantServiceClient.create()) {
      ProjectName parent = ProjectName.of(projectId);

      ListTenantsRequest request =
          ListTenantsRequest.newBuilder().setParent(parent.toString()).build();

      for (Tenant responseItem : tenantServiceClient.listTenants(request).iterateAll()) {
        System.out.format("Tenant Name: %s%n", responseItem.getName());
        System.out.format("External ID: %s%n", responseItem.getExternalId());
      }
    }
  }
}

Python

Per informazioni su come installare e utilizzare la libreria client per CTS, consulta Librerie client di CTS. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API CTS Python.

Per eseguire l'autenticazione su CTS, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.


from google.cloud import talent


def list_tenants(project_id):
    """List Tenants"""

    client = talent.TenantServiceClient()

    # project_id = 'Your Google Cloud Project ID'

    if isinstance(project_id, bytes):
        project_id = project_id.decode("utf-8")
    parent = f"projects/{project_id}"

    # Iterate over all results
    for response_item in client.list_tenants(parent=parent):
        print(f"Tenant Name: {response_item.name}")
        print(f"External ID: {response_item.external_id}")

Eliminare un tenant

Java

Per scoprire come installare e utilizzare la libreria client per CTS, consulta Librerie client CTS. Per ulteriori informazioni, consulta API Java di CTS documentazione di riferimento.

Per eseguire l'autenticazione su CTS, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.


import com.google.cloud.talent.v4.DeleteTenantRequest;
import com.google.cloud.talent.v4.TenantName;
import com.google.cloud.talent.v4.TenantServiceClient;
import java.io.IOException;

public class JobSearchDeleteTenant {

  public static void deleteTenant() throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String projectId = "your-project-id";
    String tenantId = "your-tenant-id";
    deleteTenant(projectId, tenantId);
  }

  // Delete Tenant.
  public static void deleteTenant(String projectId, String tenantId) throws IOException {
    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests. After completing all of your requests, call
    // the "close" method on the client to safely clean up any remaining background resources.
    try (TenantServiceClient tenantServiceClient = TenantServiceClient.create()) {
      TenantName name = TenantName.of(projectId, tenantId);

      DeleteTenantRequest request =
          DeleteTenantRequest.newBuilder().setName(name.toString()).build();

      tenantServiceClient.deleteTenant(request);
      System.out.println("Deleted Tenant.");
    }
  }
}

Python

Per informazioni su come installare e utilizzare la libreria client per CTS, consulta Librerie client di CTS. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API CTS Python.

Per eseguire l'autenticazione su CTS, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.


from google.cloud import talent


def delete_tenant(project_id, tenant_id):
    """Delete Tenant"""

    client = talent.TenantServiceClient()

    # project_id = 'Your Google Cloud Project ID'
    # tenant_id = 'Your Tenant ID)'

    if isinstance(project_id, bytes):
        project_id = project_id.decode("utf-8")
    if isinstance(tenant_id, bytes):
        tenant_id = tenant_id.decode("utf-8")
    name = client.tenant_path(project_id, tenant_id)

    client.delete_tenant(name=name)
    print("Deleted Tenant.")