Anda dapat menggunakan Terraform untuk membuat penyimpanan data Gemini Enterprise generik atau untuk menyiapkan konektor data untuk Atlassian Confluence, Atlassian Jira, BigQuery, Microsoft SharePoint, atau Salesforce.
Sebelum memulai
Sebelum menggunakan Terraform untuk membuat penyimpanan data, lakukan hal berikut:
Periksa apakah penagihan diaktifkan di project Google Cloud Anda.
Pastikan Anda memiliki peran Project IAM Admin (
roles/resourcemanager.projectIamAdmin) untuk project Google Cloud , serta peran Admin Gemini Enterprise (roles/discoveryengine.agentspaceAdmin).Opsional: Jika Anda menghubungkan sumber data pihak ketiga seperti Microsoft SharePoint ke Gemini Enterprise, dapatkan kredensial akses (seperti kunci API atau autentikasi database) untuk sumber data tersebut.
Pastikan Anda menggunakan penyedia Terraform hashicorp/google versi 7.7.0 atau yang lebih baru:
terraform { required_providers { google = { source = "hashicorp/google" version = "7.7.0" } } }
Membuat penyimpanan data umum
Untuk menggunakan Terraform guna membuat penyimpanan data kosong, gunakan resource Terraform
google_discovery_engine_data_store.
Buat konfigurasi Terraform:
terraform { required_providers { google = { source = "hashicorp/google" version = "7.7.0" } } } provider "google" { project = "PROJECT_ID" user_project_override = true billing_project = "BILLING_PROJECT_ID" } resource "google_discovery_engine_data_store" "gemini_search_store" { location = "LOCATION" data_store_id = "DATA_STORE_ID" display_name = "DATA_STORE_NAME" industry_vertical = "GENERIC" content_config = "NO_CONTENT" solution_types = ["SOLUTION_TYPE_SEARCH"] create_advanced_site_search = false }Ganti kode berikut:
PROJECT_ID: Project ID Google Cloud AndaBILLING_PROJECT_ID: ID project penagihan Google Cloud AndaLOCATION: lokasi penyimpanan data, sepertiusatauglobal(untuk mengetahui informasi selengkapnya, lihat Komitmen pemrosesan regional dan residensi data Edisi Standard dan Plus Gemini Enterprise)DATA_STORE_ID: ID penyimpanan dataDATA_STORE_NAME: nama penyimpanan data
Lakukan inisialisasi Terraform:
terraform init -upgradeLihat pratinjau konfigurasi Anda:
terraform planTerapkan konfigurasi:
terraform apply
Setelah membuat penyimpanan data kosong, Anda dapat memasukkan data ke dalam penyimpanan data menggunakan perintah API atau konsol Google Cloud .
Membuat konektor data
Untuk menggunakan Terraform guna membuat konektor data untuk layanan yang didukung, gunakan resource Terraform
google_discovery_engine_data_connector. Sertakan kredensial untuk layanan, serta konfigurasi filter
penelusuran, di json_params.
Buat konfigurasi Terraform:
terraform { required_providers { google = { source = "hashicorp/google" version = "7.7.0" } } } provider "google" { project = "PROJECT_ID" user_project_override = true billing_project = "BILLING_PROJECT_ID" } resource "google_discovery_engine_data_connector" "LOCAL_NAME" { provider = google project = "PROJECT_ID" location = "LOCATION" collection_id = "COLLECTION_ID" collection_display_name = "COLLECTION_DISPLAY_NAME" data_source = "DATA_SOURCE" json_params = jsonencode({ "client_id" = "CLIENT_ID" "client_secret" = "CLIENT_SECRET" "instance_uri" = "INSTANCE_URI" "tenant_id" = "TENANT_ID" "structured_search_filter" = { "FILTER_KEY" = ["FILTER_VALUE"] } }) refresh_interval = "7200s" connector_modes = [CONNECTOR_MODES] entities { entity_name = "ENTITY_NAME" } }Ganti kode berikut:
PROJECT_ID: Project ID Google Cloud AndaBILLING_PROJECT_ID: ID project penagihan Google Cloud AndaLOCAL_NAME: nama lokal resource TerraformLOCATION: lokasi penyimpanan data, sepertiusatauglobal(untuk mengetahui informasi selengkapnya, lihat Komitmen pemrosesan regional dan residensi data Edisi Standard dan Plus Gemini Enterprise)COLLECTION_ID: ID koleksiCOLLECTION_DISPLAY_NAME: nama tampilan koleksiDATA_SOURCE: jenis sumber data. Nilai berikut didukung:bigqueryconfluencejirasalesforcesharepoint_federated_search
CLIENT_ID: ID klien untuk layananCLIENT_SECRET: rahasia klien untuk layananINSTANCE_URI: URI instance Anda (misalnya,https://your-tenant.sharepoint.com)TENANT_ID: ID tenantFILTER_KEY: kunci filter (misalnya,Path)FILTER_VALUE: nilai filter (misalnya,"https://example.sharepoint.com/*")ENTITY_NAME: nama entity yang akan dicari oleh konektor (lihat dokumentasi resource)CONNECTOR_MODES: mode yang akan diaktifkan untuk konektor (misalnya,"FEDERATED")
Lakukan inisialisasi Terraform:
terraform init -upgradeLihat pratinjau konfigurasi Anda:
terraform planTerapkan konfigurasi:
terraform applySaat diminta, konfirmasi perubahan Anda.
Setelah menerapkan konfigurasi, Anda dapat melihat konektor data dalam daftar penyimpanan data dan dapat menghubungkannya ke aplikasi Gemini Enterprise. Untuk mengetahui informasi selengkapnya, lihat Menghubungkan penyimpanan data ke aplikasi dan memberikan otorisasi Gemini Enterprise.
Memperbarui konektor data
Untuk menggunakan Terraform dalam memperbarui setelan konektor data yang ada, berikan setelan baru di json_params, dan berikan argumen yang tidak berubah dengan nilai saat ini agar Terraform tidak mengganti resource. Tambahkan argumen
yang diperlukan yang tidak perlu diperbarui ke ignore_changes di blok lifecycle.
Buat konfigurasi Terraform. Contoh ini memperbarui setelan
structured_search_filterdengan nilai filter baru, tetapi mencantumkan kolom wajib diisi lainnya sepertirefresh_interval,entities, danconnector_modesdengan nilai saat ini.terraform { required_providers { google = { source = "hashicorp/google" version = "7.7.0" } } } provider "google" { project = "PROJECT_ID" user_project_override = true billing_project = "BILLING_PROJECT_ID" } resource "google_discovery_engine_data_connector" "LOCAL_NAME" { provider = google project = "PROJECT_ID" location = "LOCATION" collection_id = "COLLECTION_ID" collection_display_name = "COLLECTION_DISPLAY_NAME" data_source = "DATA_SOURCE" json_params = jsonencode({ "structured_search_filter" = { "FILTER_KEY" = ["UPDATED_FILTER_VALUE"] } }) refresh_interval = "REFRESH_INTERVAL" entities { entity_name = "ENTITY_NAME" key_property_mappings = {} } static_ip_enabled = false connector_modes = [CONNECTOR_MODES] lifecycle { ignore_changes = [ collection_display_name, entities, refresh_interval ] } }Ganti kode berikut:
PROJECT_ID: Project ID Google Cloud AndaBILLING_PROJECT_ID: ID project penagihan Google Cloud AndaLOCAL_NAME: nama lokal resource TerraformLOCATION: lokasi penyimpanan data, sepertiusatauglobal(untuk mengetahui informasi selengkapnya, lihat Komitmen pemrosesan regional dan residensi data Edisi Standard dan Plus Gemini Enterprise)COLLECTION_ID: ID koleksiCOLLECTION_DISPLAY_NAME: nama tampilan koleksiDATA_SOURCE: jenis sumber data. Nilai berikut didukung:bigqueryconfluencejirasalesforcesharepoint_federated_search
FILTER_KEY: kunci filter yang ingin Anda perbarui nilainya (misalnya,Path)UPDATED_FILTER_VALUE: nilai filter baru (misalnya,https://other.sharepoint.com/*)REFRESH_INTERVAL: interval pembaruanENTITY_NAME: nama entity yang akan dicari oleh konektor (lihat dokumentasi resource)CONNECTOR_MODES: mode yang akan diaktifkan untuk konektor (misalnya,"FEDERATED")
Jalankan
terraform importuntuk menunjukkan bahwa ini adalah operasi update:terraform import \ google_discovery_engine_data_connector.LOCAL_NAME \ projects/PROJECT_ID/locations/LOCATION/collections/COLLECTION_ID/dataConnectorLihat pratinjau konfigurasi Anda:
terraform planOutputnya akan mirip dengan berikut ini:
Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols: ~ update in-place Terraform will perform the following actions: google_discovery_engine_data_connector.update-sharepoint-connector will be updated in-place ~ resource "google_discovery_engine_data_connector" "update-sharepoint-connector" { id = "projects/my-project-123/locations/global/collections/default_collection/dataConnector" ~ json_params = jsonencode( ~ { ~ structured_search_filter = { ~ "Path" = [ ~ "https://other.sharepoint.com/*" - "https://example.sharepoint.com/*", (1 unchanged element hidden) ] } } ) name = "projects/my-project-123/locations/global/collections/default_collection/dataConnector" (21 unchanged attributes hidden) (2 unchanged blocks hidden) } Plan: 0 to add, 1 to change, 0 to destroy.Pastikan baris output terakhir menentukan
0 to add, 1 to change, 0 to destroy.Terapkan konfigurasi:
terraform applySaat diminta, konfirmasi perubahan Anda.
Outputnya akan mirip dengan berikut ini:
Apply complete! Resources: 0 added, 1 changed, 0 destroyed.
Langkah berikutnya
Untuk menyediakan antarmuka pengguna untuk membuat kueri data Anda, buat aplikasi di Gemini Enterprise dan hubungkan ke penyimpanan data Anda.
Untuk mengelola daftar tindakan untuk konektor data, lihat Mengelola tindakan.