Dasar-dasar tenant

Tenant adalah entitas yang memiliki objek pekerjaan dan perusahaan yang ditetapkan kepadanya. Mereka membuat lapisan organisasi di tengah antara project Google Cloud dan data yang Anda upload. Tenant memungkinkan Anda mengisolasi berbagai pengelompokan data tanpa memerlukan beberapa project dengan mencegah data dibagikan di seluruh batas tenant. Multi-tenancy berguna dalam situasi ketika Anda mungkin memiliki lebih dari satu pelanggan dan tidak ingin membagikan data di antara mereka, tetapi ingin mempertahankan satu project untuk penagihan dan pelaporan internal. Google CloudContoh:

  • Penyedia situs lowongan kerja yang membuat situs lowongan kerja untuk organisasi dengan beberapa perusahaan anak.
  • Agensi perekrutan yang membuat sistem pelacakan pelamar untuk beberapa bisnis.

Setiap project Google Cloud diberi tenant_id untuk satu tenant default. Jika ingin, Anda dapat mengubah default dengan membuat lebih dari satu tenant dalam project tertentu.

Tenant sepenuhnya diisolasi satu sama lain. Semua API hanya meminta satu tenant untuk mencegah data dikueri di beberapa tenant dalam satu panggilan API. Machine learning (ML) juga memperlakukan tenant sebagai unit terpisah dan tidak melintasi batas tenancy. Project dapat mendukung tenant sebanyak yang diperlukan.

Tenant default

Di Penelusuran Lowongan v4 dan yang lebih baru, entitas Penyewa diperlukan. Semua project diberi tenant_id untuk satu tenant default. Jika tidak ingin menggunakan beberapa tenant, Anda dapat:

  1. Gunakan tenant default project Anda (Direkomendasikan). Anda tidak perlu secara khusus mereferensikan tenant untuk melakukannya. Anda dapat menggunakan format projects/{project_id}/jobs/{job_id} dan backend Cloud Talent Solution akan mengasumsikan bahwa Anda menggunakan tenant default.

  2. Buat tenant tunggal dan gunakan sebagai pengganti tenant default. Jika Anda membuat tenant sendiri, Anda harus mereferensikannya: projects/{project_id}/tenants/{tenant_id}/jobs/{job_id}.

tenant_id default bersifat unik untuk setiap project dan tidak pernah diganti atau digantikan jika Anda membuat tenant tambahan. Anda tidak dapat memanggil metode CRUD di tenant default.

Tenant yang dibuat (opsional)

Membuat tenant Anda sendiri bersifat opsional. Setiap project Penelusuran Lowongan Kerja ditetapkan ke tenant default oleh backend CTS. Jika Anda tidak ingin menggunakan multi-tenant untuk memisahkan sub-divisi data, sebaiknya gunakan tenant default.

Membuat tenant

Anda diwajibkan membuat nilai externalId yang unik dan menetapkannya ke tenant baru. Panggilan kemudian menampilkan name unik yang ditetapkan oleh sistem backend kami, yang juga ditetapkan ke tenant tersebut. Pastikan untuk mencatat dan menyimpan nilai name dan externalId, karena nilai tersebut digunakan untuk memperbarui/menghapus/mereferensikan.

Contoh kode di bawah ini membuat tenant baru:

Java

Untuk mempelajari cara menginstal dan menggunakan library klien untuk CTS, lihat CTS client libraries. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Java CTS.

Untuk melakukan autentikasi ke CTS, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.


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

Untuk mempelajari cara menginstal dan menggunakan library klien untuk CTS, lihat CTS client libraries. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Node.js CTS.

Untuk melakukan autentikasi ke CTS, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.


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

Untuk mempelajari cara menginstal dan menggunakan library klien untuk CTS, lihat CTS client libraries. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Python CTS.

Untuk melakukan autentikasi ke CTS, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.


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

Mengambil tenant

Java

Untuk mempelajari cara menginstal dan menggunakan library klien untuk CTS, lihat CTS client libraries. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Java CTS.

Untuk melakukan autentikasi ke CTS, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.


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

Untuk mempelajari cara menginstal dan menggunakan library klien untuk CTS, lihat CTS client libraries. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Python CTS.

Untuk melakukan autentikasi ke CTS, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.


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

Mencantumkan tenant

Java

Untuk mempelajari cara menginstal dan menggunakan library klien untuk CTS, lihat CTS client libraries. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Java CTS.

Untuk melakukan autentikasi ke CTS, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.


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

Untuk mempelajari cara menginstal dan menggunakan library klien untuk CTS, lihat CTS client libraries. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Python CTS.

Untuk melakukan autentikasi ke CTS, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.


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

Menghapus tenant

Java

Untuk mempelajari cara menginstal dan menggunakan library klien untuk CTS, lihat CTS client libraries. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Java CTS.

Untuk melakukan autentikasi ke CTS, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.


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

Untuk mempelajari cara menginstal dan menggunakan library klien untuk CTS, lihat CTS client libraries. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Python CTS.

Untuk melakukan autentikasi ke CTS, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.


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