您可以使用 Terraform 建立一般 Gemini Enterprise 資料儲存庫,或設定 Atlassian Confluence、Atlassian Jira、BigQuery、Microsoft SharePoint 或 Salesforce 的資料連接器。
事前準備
使用 Terraform 建立資料儲存庫前,請先完成下列步驟:
請確認您具備 Google Cloud 專案的專案 IAM 管理員 (
roles/resourcemanager.projectIamAdmin) 角色,以及 Gemini Enterprise 管理員 (roles/discoveryengine.agentspaceAdmin) 角色。選用:如要將 Microsoft SharePoint 等第三方資料來源連結至 Gemini Enterprise,請取得資料來源的存取憑證 (例如 API 金鑰或資料庫驗證)。
確認您使用的是 7.7.0 以上版本的 hashicorp/google Terraform 供應程式:
terraform { required_providers { google = { source = "hashicorp/google" version = "7.7.0" } } }
建立一般資料儲存庫
如要使用 Terraform 建立空白資料儲存庫,請使用
google_discovery_engine_data_store
Terraform 資源。
建立 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 }更改下列內容:
PROJECT_ID:您的 Google Cloud 專案 IDBILLING_PROJECT_ID:您的 Google Cloud 帳單專案 ID:資料儲存庫的位置,例如
us或global(詳情請參閱 Gemini Enterprise Standard 和 Plus 版的資料落地和機器學習區域處理承諾)LOCATIONDATA_STORE_ID:資料儲存庫 IDDATA_STORE_NAME:資料儲存庫名稱
初始化 Terraform:
terraform init -upgrade預覽設定:
terraform plan套用設定:
terraform apply
建立空白資料儲存庫後,即可使用 Google Cloud 控制台或 API 指令,將資料匯入資料儲存庫。
建立資料連接器
如要使用 Terraform 為支援的服務建立資料連接器,請使用 google_discovery_engine_data_connector Terraform 資源。在 json_params 中加入服務的憑證和搜尋篩選器設定。
建立 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" } }更改下列內容:
PROJECT_ID:您的 Google Cloud 專案 IDBILLING_PROJECT_ID:您的 Google Cloud 帳單專案 IDLOCAL_NAME:Terraform 資源的本機名稱:資料儲存庫的位置,例如
us或global(詳情請參閱 Gemini Enterprise Standard 和 Plus 版的資料落地和機器學習區域處理承諾)LOCATIONCOLLECTION_ID:集合 IDCOLLECTION_DISPLAY_NAME:集合顯示名稱DATA_SOURCE:資料來源類型。支援下列值:bigqueryconfluencejirasalesforcesharepoint_federated_search
CLIENT_ID:服務的用戶端 IDCLIENT_SECRET:服務的用戶端密鑰INSTANCE_URI:執行個體的 URI (例如https://your-tenant.sharepoint.com)TENANT_ID:租戶 IDFILTER_KEY:篩選鍵 (例如Path)FILTER_VALUE:篩選器值 (例如"https://example.sharepoint.com/*")ENTITY_NAME:連接器要搜尋的實體名稱 (請參閱資源說明文件)CONNECTOR_MODES:要為連接器啟用的模式 (例如"FEDERATED")
初始化 Terraform:
terraform init -upgrade預覽設定:
terraform plan套用設定:
terraform apply出現提示時,請確認變更。
套用設定後,您可以在資料儲存庫清單中看到資料連接器,並將其連結至 Gemini Enterprise 應用程式。詳情請參閱「將資料儲存庫連結至應用程式並授權 Gemini Enterprise」。
更新資料連接器
如要使用 Terraform 更新現有資料連接器的設定,請在 json_params 中提供新設定,並提供任何未變更的引數及其目前值,這樣 Terraform 就不會取代資源。在 lifecycle 區塊中,將不需要更新的必要引數新增至 ignore_changes。
建立 Terraform 設定。這個範例會使用新的篩選器值更新
structured_search_filter設定,但會列出其他必要欄位 (例如refresh_interval、entities和connector_modes) 及其目前的值。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 ] } }更改下列內容:
PROJECT_ID:您的 Google Cloud 專案 IDBILLING_PROJECT_ID:您的 Google Cloud 帳單專案 IDLOCAL_NAME:Terraform 資源的本機名稱:資料儲存庫的位置,例如
us或global(詳情請參閱 Gemini Enterprise Standard 和 Plus 版的資料落地和機器學習區域處理承諾)LOCATIONCOLLECTION_ID:集合 IDCOLLECTION_DISPLAY_NAME:集合顯示名稱DATA_SOURCE:資料來源類型。支援下列值:bigqueryconfluencejirasalesforcesharepoint_federated_search
FILTER_KEY:要更新值的篩選鍵 (例如Path)UPDATED_FILTER_VALUE:新的篩選器值 (例如https://other.sharepoint.com/*)REFRESH_INTERVAL:重新整理間隔ENTITY_NAME:連接器要搜尋的實體名稱 (請參閱資源說明文件)CONNECTOR_MODES:要為連接器啟用的模式 (例如"FEDERATED")
執行
terraform import,指出這是更新作業:terraform import \ google_discovery_engine_data_connector.LOCAL_NAME \ projects/PROJECT_ID/locations/LOCATION/collections/COLLECTION_ID/dataConnector預覽設定:
terraform plan畫面會顯示如下的輸出內容:
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.確認輸出內容的最後一行指定
0 to add, 1 to change, 0 to destroy。套用設定:
terraform apply出現提示時,請確認變更。
畫面會顯示如下的輸出內容:
Apply complete! Resources: 0 added, 1 changed, 0 destroyed.