Grundlagen zu Mandanten

Mandanten sind Entitäten, die Eigentümer aller ihnen zugewiesenen Jobs und Unternehmensobjekte sind. Sie bilden eine mittlere Organisationsebene zwischen einem Google Cloud Platform-Projekt und Ihren hochgeladenen Daten. Mit Mandanten können Sie verschiedene Gruppierungen Ihrer Daten isolieren, ohne dass mehrere Projekte erforderlich sind, da verhindert wird, dass Daten über Mandantengrenzen hinweg gemeinsam genutzt werden. Mehrinstanzenfähigkeit ist dann nützlich, wenn Sie mehrere Kunden haben und keine Daten zwischen diesen austauschen, aber ein einzelnes GCP-Projekt für die interne Abrechnung und Berichterstellung verwalten möchten. Beispiel:

  • Anbieter von Jobbörsen, die Jobbörsen für Organisationen mit mehreren Tochterunternehmen einrichten
  • Stellenvermittlungen, die Applicant Tracking Systeme für mehrere Unternehmen erstellen

Jedem Google Cloud Platform-Projekt wird für einen einzelnen Standardmandanten eine tenant_id zugewiesen. Sie können den Standard auch durch die Erstellung mehrerer Mandanten in einem bestimmten Projekt ändern.

Mandanten sind vollständig voneinander isoliert. Alle APIs fordern nur einen einzelnen Mandanten an, um zu verhindern, dass Daten in einem einzigen API-Aufruf über mehrere Mandanten hinweg abgefragt werden. Ähnlich werden beim maschinellen Lernen (ML) Mandanten wie eigenständige Einheiten behandelt, ohne dass Mandantengrenzen überschritten werden. Ein Projekt kann beliebig viele Mandanten unterstützen.

Standardmandanten

Ab Version 4 der Jobsuche ist eine Mandantenentität erforderlich. Allen Projekten wird eine tenant_id für einen einzelnen Standardmandanten zugewiesen. Wenn Sie nicht mehrere Mandanten verwenden möchten, haben Sie folgende Möglichkeiten:

  1. Verwenden Sie den Standardmandanten Ihres Projekts (empfohlen). Dazu müssen Sie nicht konkret auf den Mandanten verweisen. Sie können das Format projects/{project_id}/jobs/{job_id} verwenden, und das Cloud Talent Solution-Backend geht davon aus, dass Sie den Standardmandanten verwenden.

  2. Erstellen Sie einen einzelnen Mandanten und verwenden Sie ihn anstelle des Standardmandanten. Wenn Sie einen eigenen Mandanten erstellen, müssen Sie darauf verweisen: projects/{project_id}/tenants/{tenant_id}/jobs/{job_id}.

Der Standardwert tenant_id ist für jedes Projekt eindeutig und wird niemals überschrieben oder ersetzt, wenn Sie zusätzliche Mandanten erstellen. Sie können keine CRUD-Methoden für den Standardmandanten aufrufen.

Erstellte Mandanten (optional)

Das Erstellen eigener Mandanten ist optional. Jedem Jobsucheprojekt wird vom CTS-Back-End ein Standardmandant zugewiesen. Wenn Sie keine Mehrinstanzenfähigkeit verwenden möchten, um Unterteilungen Ihrer Daten zu trennen, empfehlen wir die Verwendung des Standardmandanten.

Mandanten erstellen

Sie müssen einen eindeutigen externalId -Wert erstellen und ihn dem neuen Mandanten zuweisen. Der Aufruf gibt dann eine eindeutige name zurück, die von unserem Backend-System zugewiesen wurde und auch diesem Mandanten zugewiesen ist. Stellen Sie sicher, dass Sie sowohl die Werte name als auch externalId aufzeichnen und speichern, da diese zum Aktualisieren/Löschen/Verweisen verwendet werden.

Im folgenden Codebeispiel wird ein neuer Mandant erstellt:

Java


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

Weitere Informationen zum Installieren und Erstellen eines Cloud Talent Solution-Clients finden Sie unter Cloud Talent Solution-Clientbibliotheken.


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

Weitere Informationen zum Installieren und Erstellen eines Cloud Talent Solution-Clients finden Sie unter Cloud Talent Solution-Clientbibliotheken.


from google.cloud import talent
import six

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, six.binary_type):
        project_id = project_id.decode("utf-8")
    if isinstance(external_id, six.binary_type):
        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

Ruby

Weitere Informationen zum Installieren und Erstellen eines Cloud Talent Solution-Clients finden Sie unter Cloud Talent Solution-Clientbibliotheken.

require "google/cloud/talent"

# Instantiate a client
tenant_service = Google::Cloud::Talent.tenant_service

# project_id = "Your Google Cloud Project ID"
# external_id = "Your Unique Identifier for Tenant"
parent = tenant_service.project_path project: project_id
tenant = { external_id: external_id }

response = tenant_service.create_tenant parent: parent, tenant: tenant
puts "Created Tenant"
puts "Name: #{response.name}"
puts "External ID: #{response.external_id}"

C#

Weitere Informationen zum Installieren und Erstellen eines Cloud Talent Solution-Clients finden Sie unter Cloud Talent Solution-Clientbibliotheken.

public static object CreateTenant(string projectId, string externalId)
{
    TenantServiceClient tenantServiceClient = TenantServiceClient.Create();
    Tenant tenant = new Tenant
    {
        ExternalId = externalId,
    };
    ProjectName parent = new ProjectName(projectId);
    CreateTenantRequest request = new CreateTenantRequest
    {
        ParentAsProjectName = parent,
        Tenant = tenant
    };
    Tenant response = tenantServiceClient.CreateTenant(request);

    Console.WriteLine($"Created Tenant.");
    Console.WriteLine($"Name: {response.Name}");
    Console.WriteLine($"External ID: {response.ExternalId}");
    return 0;
}

Mandanten abrufen

Java

Weitere Informationen zum Installieren und Erstellen eines Cloud Talent Solution-Clients finden Sie unter Cloud Talent Solution-Clientbibliotheken.


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

Weitere Informationen zum Installieren und Erstellen eines Cloud Talent Solution-Clients finden Sie unter Cloud Talent Solution-Clientbibliotheken.


from google.cloud import talent
import six

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, six.binary_type):
        project_id = project_id.decode("utf-8")
    if isinstance(tenant_id, six.binary_type):
        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}")

Ruby

Weitere Informationen zum Installieren und Erstellen eines Cloud Talent Solution-Clients finden Sie unter Cloud Talent Solution-Clientbibliotheken.

require "google/cloud/talent"

# Instantiate a client
tenant_service = Google::Cloud::Talent.tenant_service

# project_id = "Your Google Cloud Project ID"
# tenant_id = "Your Tenant ID"
formatted_name = tenant_service.tenant_path project: project_id, tenant: tenant_id

response = tenant_service.get_tenant name: formatted_name
puts "Name: #{response.name}"
puts "External ID: #{response.external_id}"

C#

Weitere Informationen zum Installieren und Erstellen eines Cloud Talent Solution-Clients finden Sie unter Cloud Talent Solution-Clientbibliotheken.

public static object GetTenant(string projectId, string tenantId)
{
    TenantServiceClient tenantServiceClient = TenantServiceClient.Create();
    TenantName name = TenantName.FromProjectTenant(projectId, tenantId);
    GetTenantRequest request = new GetTenantRequest
    {
        TenantName = name
    };
    Tenant response = tenantServiceClient.GetTenant(request);
    Console.WriteLine($"Name: {response.Name}");
    Console.WriteLine($"External ID: {response.ExternalId}");
    return 0;
}

Mandanten auflisten

Java

Weitere Informationen zum Installieren und Erstellen eines Cloud Talent Solution-Clients finden Sie unter Cloud Talent Solution-Clientbibliotheken.


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

Weitere Informationen zum Installieren und Erstellen eines Cloud Talent Solution-Clients finden Sie unter Cloud Talent Solution-Clientbibliotheken.


from google.cloud import talent
import six

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

    client = talent.TenantServiceClient()

    # project_id = 'Your Google Cloud Project ID'

    if isinstance(project_id, six.binary_type):
        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}")

Ruby

Weitere Informationen zum Installieren und Erstellen eines Cloud Talent Solution-Clients finden Sie unter Cloud Talent Solution-Clientbibliotheken.

require "google/cloud/talent"

# Instantiate a client
tenant_service = Google::Cloud::Talent.tenant_service

# project_id = "Your Google Cloud Project ID"
formatted_parent = tenant_service.project_path project: project_id

# Iterate over all results.
tenant_service.list_tenants(parent: formatted_parent).each do |element|
  puts "Tenant Name: #{element.name}"
  puts "External ID: #{element.external_id}"
end

C#

Weitere Informationen zum Installieren und Erstellen eines Cloud Talent Solution-Clients finden Sie unter Cloud Talent Solution-Clientbibliotheken.

public static object ListTenants(string projectId)
{
    TenantServiceClient tenantServiceClient = TenantServiceClient.Create();
    ProjectName parent = new ProjectName(projectId);
    ListTenantsRequest request = new ListTenantsRequest
    {
        ParentAsProjectName = parent
    };
    var tenants = tenantServiceClient.ListTenants(request);
    foreach (var tenant in tenants)
    {
        Console.WriteLine($"Tenant Name: {tenant.Name}");
        Console.WriteLine($"External ID: {tenant.ExternalId}");
    }
    return 0;
}

Mandant löschen

Java

Weitere Informationen zum Installieren und Erstellen eines Cloud Talent Solution-Clients finden Sie unter Cloud Talent Solution-Clientbibliotheken.


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

Weitere Informationen zum Installieren und Erstellen eines Cloud Talent Solution-Clients finden Sie unter Cloud Talent Solution-Clientbibliotheken.


from google.cloud import talent
import six

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, six.binary_type):
        project_id = project_id.decode("utf-8")
    if isinstance(tenant_id, six.binary_type):
        tenant_id = tenant_id.decode("utf-8")
    name = client.tenant_path(project_id, tenant_id)

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

Ruby

Weitere Informationen zum Installieren und Erstellen eines Cloud Talent Solution-Clients finden Sie unter Cloud Talent Solution-Clientbibliotheken.

require "google/cloud/talent"

# Instantiate a client
tenant_service = Google::Cloud::Talent.tenant_service

# project_id = "Your Google Cloud Project ID"
# tenant_id = "Your Tenant ID)"
formatted_name = tenant_service.tenant_path project: project_id, tenant: tenant_id

tenant_service.delete_tenant name: formatted_name

puts "Deleted Tenant."

C#

Weitere Informationen zum Installieren und Erstellen eines Cloud Talent Solution-Clients finden Sie unter Cloud Talent Solution-Clientbibliotheken.

public static object DeleteTenant(string projectId, string tenantId)
{
    TenantServiceClient tenantServiceClient = TenantServiceClient.Create();
    TenantName tenantName = TenantName.FromProjectTenant(projectId, tenantId);
    DeleteTenantRequest request = new DeleteTenantRequest
    {
        TenantName = tenantName
    };
    tenantServiceClient.DeleteTenant(request);
    Console.WriteLine($"Deleted Tenant.");
    return 0;
}