Dasar-dasar tenant

Tenant adalah entitas yang memiliki objek pekerjaan dan perusahaan yang ditetapkan kepadanya. Tindakan ini akan membuat lapisan organisasi tengah antara project Google Cloud dan data yang Anda upload. Dengan tenant, Anda dapat mengisolasi berbagai pengelompokan data tanpa memerlukan beberapa project dengan mencegah data dibagikan di seluruh batasan tenancy. Multi-tenancy berguna dalam situasi saat Anda mungkin memiliki lebih dari satu pelanggan dan tidak ingin berbagi data di antara mereka, tetapi ingin mempertahankan satu project Google Cloud untuk penagihan dan pelaporan internal. Contoh:

  • Penyedia situs lowongan yang membuat situs lowongan 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. Secara opsional, Anda dapat mengubah default dengan membuat lebih dari satu tenant dalam project tertentu.

Tenant sepenuhnya terisolasi 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 melewati batasan tenancy. Project dapat mendukung sebanyak mungkin tenant yang diperlukan.

Tenant default

Di Penelusuran Lowongan v4 dan yang lebih baru, entitas Tenant 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 mereferensikan tenant secara khusus untuk melakukannya. Anda dapat menggunakan format projects/{project_id}/jobs/{job_id} dan backend Cloud Talent Solution akan menganggap bahwa Anda menggunakan tenant default.

  2. Buat satu tenant dan gunakan sebagai pengganti tenant default. Jika 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 ditimpa atau diganti 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 diberi tenant default oleh backend CTS. Jika Anda tidak ingin menggunakan multi-tenancy untuk memisahkan subdivisi data, sebaiknya gunakan tenant default.

Membuat tenant

Anda harus membuat nilai externalId 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 membuat tenant baru:

Java

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

Untuk melakukan autentikasi ke CTS, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca 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 Library klien CTS. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi CTS Node.js API.

Untuk melakukan autentikasi ke CTS, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca 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 Library klien CTS. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi CTS Python API.

Untuk melakukan autentikasi ke CTS, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca 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 Library klien CTS. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi CTS Java API.

Untuk melakukan autentikasi ke CTS, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca 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 Library klien CTS. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi CTS Python API.

Untuk melakukan autentikasi ke CTS, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca 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 Library klien CTS. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi CTS Java API.

Untuk melakukan autentikasi ke CTS, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca 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 Library klien CTS. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi CTS Python API.

Untuk melakukan autentikasi ke CTS, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca 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 Library klien CTS. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi CTS Java API.

Untuk melakukan autentikasi ke CTS, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca 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 Library klien CTS. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi CTS Python API.

Untuk melakukan autentikasi ke CTS, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca 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.")