Puedes usar Terraform para crear un almacén de datos genérico de Gemini Enterprise o configurar conectores de datos para Atlassian Confluence, Atlassian Jira, BigQuery, Microsoft SharePoint o Salesforce.
Antes de comenzar
Antes de usar Terraform para crear un almacén de datos, haz lo siguiente:
Verifica si la facturación está habilitada en tu proyecto de Google Cloud .
Asegúrate de tener el rol de administrador de IAM de proyecto (
roles/resourcemanager.projectIamAdmin) para tu proyecto Google Cloud , así como el rol de administrador de Gemini Enterprise (roles/discoveryengine.agentspaceAdmin).Opcional: Si conectas una fuente de datos de terceros, como Microsoft SharePoint, a Gemini Enterprise, obtén credenciales de acceso (como claves de API o autenticación de bases de datos) para la fuente de datos.
Asegúrate de usar la versión 7.7.0 o una posterior del proveedor de Terraform hashicorp/google:
terraform { required_providers { google = { source = "hashicorp/google" version = "7.7.0" } } }
Crea un almacén de datos genérico
Para usar Terraform y crear un almacén de datos vacío, usa el recurso de Terraform google_discovery_engine_data_store.
Crea la configuración de 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 }Reemplaza lo siguiente:
PROJECT_ID: ID del proyecto de Google CloudBILLING_PROJECT_ID: El ID de tu Google Cloud proyecto de facturaciónLOCATION: Es la ubicación del almacén de datos, comousoglobal(para obtener más información, consulta Compromisos de residencia de datos y procesamiento regional de AA de las ediciones Gemini Enterprise Standard y Plus).DATA_STORE_ID: El ID del almacén de datosDATA_STORE_NAME: El nombre del almacén de datos
Inicializa Terraform mediante este comando:
terraform init -upgradeObtén una vista previa de tu configuración:
terraform planAplica la configuración:
terraform apply
Después de crear el almacén de datos vacío, puedes transferir datos a él con los comandos de la consola o la API de Google Cloud .
Crea un conector de datos
Para usar Terraform y crear un conector de datos para un servicio compatible, usa el recurso de Terraform google_discovery_engine_data_connector. Incluye las credenciales para el servicio, así como la configuración del filtro de búsqueda, en json_params.
Crea la configuración de 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" } }Reemplaza lo siguiente:
PROJECT_ID: ID del proyecto de Google CloudBILLING_PROJECT_ID: El ID de tu Google Cloud proyecto de facturaciónLOCAL_NAME: Es el nombre local del recurso de Terraform.LOCATION: Es la ubicación del almacén de datos, comousoglobal(para obtener más información, consulta Compromisos de residencia de datos y procesamiento regional de AA de las ediciones Gemini Enterprise Standard y Plus).COLLECTION_ID: ID de la colecciónCOLLECTION_DISPLAY_NAME: El nombre visible de la colecciónDATA_SOURCE: Es el tipo de fuente de datos. Se admiten los siguientes valores:bigqueryconfluencejirasalesforcesharepoint_federated_search
CLIENT_ID: Es el ID de cliente del servicio.CLIENT_SECRET: El secreto del cliente para el servicioINSTANCE_URI: el URI de tu instancia (por ejemplo,https://your-tenant.sharepoint.com)TENANT_ID: Es el ID del arrendatario.FILTER_KEY: Una clave de filtro (por ejemplo,Path)FILTER_VALUE: Es un valor de filtro (por ejemplo,"https://example.sharepoint.com/*").ENTITY_NAME: Es el nombre de una entidad que el conector puede buscar (consulta la documentación de recursos).CONNECTOR_MODES: Son los modos que se habilitarán para el conector (por ejemplo,"FEDERATED").
Inicializa Terraform mediante este comando:
terraform init -upgradeObtén una vista previa de tu configuración:
terraform planAplica la configuración:
terraform applyCuando se te solicite, confirma los cambios.
Después de aplicar la configuración, puedes ver el conector de datos en la lista de almacenes de datos y conectarlo a una app de Gemini Enterprise. Para obtener más información, consulta Conecta un almacén de datos a una app y autoriza Gemini Enterprise.
Actualiza un conector de datos
Para usar Terraform y actualizar la configuración de un conector de datos existente, proporciona la configuración nueva en json_params y proporciona los argumentos sin cambios con sus valores actuales para que Terraform no reemplace el recurso. Agrega los argumentos obligatorios que no necesiten actualizarse a ignore_changes en el bloque lifecycle.
Crea la configuración de Terraform. En este ejemplo, se actualiza el parámetro de configuración
structured_search_filtercon un nuevo valor de filtro, pero se enumeran otros campos obligatorios, comorefresh_interval,entitiesyconnector_modes, con sus valores actuales.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 ] } }Reemplaza lo siguiente:
PROJECT_ID: ID del proyecto de Google CloudBILLING_PROJECT_ID: El ID de tu Google Cloud proyecto de facturaciónLOCAL_NAME: Es el nombre local del recurso de Terraform.LOCATION: Es la ubicación del almacén de datos, comousoglobal(para obtener más información, consulta Compromisos de residencia de datos y procesamiento regional de AA de las ediciones Gemini Enterprise Standard y Plus).COLLECTION_ID: ID de la colecciónCOLLECTION_DISPLAY_NAME: El nombre visible de la colecciónDATA_SOURCE: Es el tipo de fuente de datos. Se admiten los siguientes valores:bigqueryconfluencejirasalesforcesharepoint_federated_search
FILTER_KEY: Es una clave de filtro para la que deseas actualizar el valor (por ejemplo,Path).UPDATED_FILTER_VALUE: Es el nuevo valor del filtro (por ejemplo,https://other.sharepoint.com/*).REFRESH_INTERVAL: Es el intervalo de actualización.ENTITY_NAME: Es el nombre de una entidad que el conector puede buscar (consulta la documentación de recursos).CONNECTOR_MODES: Son los modos que se habilitarán para el conector (por ejemplo,"FEDERATED").
Ejecuta
terraform importpara indicar que se trata de una operación de actualización:terraform import \ google_discovery_engine_data_connector.LOCAL_NAME \ projects/PROJECT_ID/locations/LOCATION/collections/COLLECTION_ID/dataConnectorObtén una vista previa de tu configuración:
terraform planEl resultado debería ser similar al siguiente ejemplo:
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.Asegúrate de que la última línea del resultado especifique
0 to add, 1 to change, 0 to destroy.Aplica la configuración:
terraform applyCuando se te solicite, confirma los cambios.
El resultado debería ser similar al siguiente ejemplo:
Apply complete! Resources: 0 added, 1 changed, 0 destroyed.
¿Qué sigue?
Para proporcionar una interfaz de usuario para consultar tus datos, crea una app en Gemini Enterprise y conéctala a tu almacén de datos.
Para administrar la lista de acciones de un conector de datos, consulta Administra acciones.