Puedes usar Terraform para crear un almacén de datos genérico de Gemini Enterprise o para 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 del proyecto (
roles/resourcemanager.projectIamAdmin) para tu proyecto de 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 base 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: Es el ID del proyecto de Google Cloud .BILLING_PROJECT_ID: Es el ID del proyecto de facturación de Google Cloud .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 de Gemini Enterprise).DATA_STORE_ID: Es el ID del almacén de datos.DATA_STORE_NAME: Es 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 la consola de Google Cloud o los comandos de la API.
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 del servicio y 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: Es el ID del proyecto de Google Cloud .BILLING_PROJECT_ID: Es el ID del proyecto de facturación de Google Cloud .LOCAL_NAME: el nombre local del recurso de TerraformLOCATION: 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 de Gemini Enterprise).COLLECTION_ID: el 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: el ID de cliente del servicioCLIENT_SECRET: Es el secreto del cliente para el servicio.INSTANCE_URI: Es el URI de tu instancia (por ejemplo,https://your-tenant.sharepoint.com).TENANT_ID: el ID del usuarioFILTER_KEY: Es 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 debe buscar (consulta la documentación del recurso).CONNECTOR_MODES: 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 la app y autoriza a 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 necesitan actualizarse a ignore_changes en el bloque
lifecycle.
Crea la configuración de Terraform. En este ejemplo, se actualiza el parámetro
structured_search_filtercon un valor de filtro nuevo, 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: Es el ID del proyecto de Google Cloud .BILLING_PROJECT_ID: Es el ID del proyecto de facturación de Google Cloud .LOCAL_NAME: el nombre local del recurso de TerraformLOCATION: 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 de Gemini Enterprise).COLLECTION_ID: el 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 valor de filtro nuevo (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 debe buscar (consulta la documentación del recurso).CONNECTOR_MODES: 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 línea final 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.