您可以使用 Terraform 创建通用的 Gemini Enterprise 数据存储区,也可以为 Atlassian Confluence、Atlassian Jira、BigQuery、Microsoft SharePoint 或 Salesforce 设置数据连接器。
准备工作
在使用 Terraform 创建数据存储区之前,请执行以下操作:
检查您的 Google Cloud 项目是否已启用结算功能。
确保您拥有项目的 Project IAM Admin (
roles/resourcemanager.projectIamAdmin) 角色,以及 Gemini Enterprise Admin (roles/discoveryengine.agentspaceAdmin) 角色。 Google Cloud可选:如果您要将 Microsoft SharePoint 等第三方数据源连接到 Gemini Enterprise,请获取该数据源的访问凭据(例如 API 密钥或数据库身份验证)。
确保您使用的是 hashicorp/google Terraform 提供方 7.7.0 版或更高版本:
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 结算项目 IDLOCATION:数据存储区的位置,例如us或global(如需了解详情,请参阅 Gemini Enterprise Standard 版和 Plus 版的数据驻留和机器学习区域处理承诺)DATA_STORE_ID:数据存储区 IDDATA_STORE_NAME:数据存储区名称
初始化 Terraform:
terraform init -upgrade预览配置:
terraform plan应用配置:
terraform apply
创建空数据存储区后,您可以使用 控制台或 API 命令 Google Cloud 将数据注入到该数据存储区中。
创建数据连接器
如需使用 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 资源的本地名称LOCATION:数据存储区的位置,例如us或global(如需了解详情,请参阅 Gemini Enterprise Standard 版和 Plus 版的数据驻留和机器学习区域处理承诺)COLLECTION_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 资源的本地名称LOCATION:数据存储区的位置,例如us或global(如需了解详情,请参阅 Gemini Enterprise Standard 版和 Plus 版的数据驻留和机器学习区域处理承诺)COLLECTION_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.
后续步骤
如需提供用于查询数据的界面, 请在 Gemini Enterprise 中创建应用,然后 将其连接到您的数据存储区。
如需管理数据连接器的操作列表,请参阅 管理操作。