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 Google Cloud proyecto.
Asegúrate de tener el rol de Administrador de IAM de proyecto (
roles/resourcemanager.projectIamAdmin) para tu Google Cloud proyecto, así como el rol de Administrador de Gemini Enterprise (roles/discoveryengine.agentspaceAdmin) role.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 posterior del proveedor de Terraform de 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
google_discovery_engine_data_store
recurso de Terraform.
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: el ID de tu Google Cloud proyectoBILLING_PROJECT_ID: el ID de tu Google Cloud proyecto de facturaciónLOCATION: 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 Standard y Plus de Gemini Enterprise)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 ingerir datos en él con la Google Cloud consola 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
google_discovery_engine_data_connector
recurso de Terraform. Incluye 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: el ID de tu Google Cloud proyectoBILLING_PROJECT_ID: el ID de tu Google Cloud proyecto de facturaciónLOCAL_NAME: el nombre local del recurso de TerraformLOCATION: 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 Standard y Plus de Gemini Enterprise)COLLECTION_ID: el ID de la colecciónCOLLECTION_DISPLAY_NAME: el nombre visible de la colecciónDATA_SOURCE: el tipo de fuente de datos. Se admiten los siguientes valores:bigqueryconfluencejirasalesforcesharepoint_federated_search
CLIENT_ID: el ID de cliente del servicioCLIENT_SECRET: el secreto del cliente del servicioINSTANCE_URI: el URI de tu instancia (por ejemplo,https://your-tenant.sharepoint.com)TENANT_ID: el ID del arrendatarioFILTER_KEY: una clave de filtro (por ejemplo,Path)FILTER_VALUE: un valor de filtro (por ejemplo,"https://example.sharepoint.com/*")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 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 la configuración de
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: el ID de tu Google Cloud proyectoBILLING_PROJECT_ID: el ID de tu Google Cloud proyecto de facturaciónLOCAL_NAME: el nombre local del recurso de TerraformLOCATION: 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 Standard y Plus de Gemini Enterprise)COLLECTION_ID: el ID de la colecciónCOLLECTION_DISPLAY_NAME: el nombre visible de la colecciónDATA_SOURCE: el tipo de fuente de datos. Se admiten los siguientes valores:bigqueryconfluencejirasalesforcesharepoint_federated_search
FILTER_KEY: una clave de filtro para la que deseas actualizar el valor (por ejemplo,Path)UPDATED_FILTER_VALUE: el nuevo valor de filtro (por ejemplo,https://other.sharepoint.com/*)REFRESH_INTERVAL: el intervalo de actualizaciónCONNECTOR_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.