Puoi utilizzare Terraform per creare un datastore Gemini Enterprise generico o per configurare i connettori dati per Atlassian Confluence, Atlassian Jira, BigQuery, Microsoft SharePoint o Salesforce.
Prima di iniziare
Prima di utilizzare Terraform per creare un datastore:
Verifica che la fatturazione sia abilitata per il tuo Google Cloud progetto.
Assicurati di disporre del ruolo Amministratore IAM progetto (
roles/resourcemanager.projectIamAdmin) per il tuo Google Cloud progetto, nonché del ruolo Amministratore Gemini Enterprise (roles/discoveryengine.agentspaceAdmin)(Facoltativo) Se stai collegando un'origine dati di terze parti come Microsoft SharePoint a Gemini Enterprise, ottieni le credenziali di accesso (ad esempio chiavi API o autenticazione del database) per l'origine dati.
Assicurati di utilizzare la versione 7.7.0 o successive del provider Terraform hashicorp/google:
terraform { required_providers { google = { source = "hashicorp/google" version = "7.7.0" } } }
Creare un datastore generico
Per utilizzare Terraform per creare un datastore vuoto, utilizza la
google_discovery_engine_data_store
risorsa Terraform.
Crea la configurazione 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 }Sostituisci quanto segue:
PROJECT_ID: il tuo Google Cloud ID progettoBILLING_PROJECT_ID: il tuo Google Cloud ID progettoLOCATION: la località del datastore, ad esempiousoglobal(per ulteriori informazioni, consulta Impegni di residenza dei dati e di elaborazione regionale di ML delle versioni Gemini Enterprise Standard e Plus)DATA_STORE_ID: l'ID del datastoreDATA_STORE_NAME: il nome del datastore
Inizializza Terraform:
terraform init -upgradeVisualizza l'anteprima della configurazione:
terraform planApplica la configurazione:
terraform apply
Dopo aver creato il datastore vuoto, puoi inserire i dati nel datastore utilizzando i Google Cloud comandi della console o dell'API.
Creare un connettore dati
Per utilizzare Terraform per creare un connettore dati per un servizio supportato, utilizza la
google_discovery_engine_data_connector
risorsa Terraform. Includi le credenziali per il servizio, nonché la configurazione del filtro di ricerca, in json_params.
Crea la configurazione 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" } }Sostituisci quanto segue:
PROJECT_ID: il tuo Google Cloud ID progettoBILLING_PROJECT_ID: il tuo Google Cloud ID progettoLOCAL_NAME: il nome locale della risorsa TerraformLOCATION: la località del datastore, ad esempiousoglobal(per ulteriori informazioni, consulta Impegni di residenza dei dati e di elaborazione regionale di ML delle versioni Gemini Enterprise Standard e Plus)COLLECTION_ID: l'ID della raccoltaCOLLECTION_DISPLAY_NAME: il nome visualizzato della raccoltaDATA_SOURCE: il tipo di origine dati. Sono supportati i seguenti valori:bigqueryconfluencejirasalesforcesharepoint_federated_search
CLIENT_ID: l'ID client per il servizioCLIENT_SECRET: il client secret per il servizioINSTANCE_URI: l'URI della tua istanza (ad esempiohttps://your-tenant.sharepoint.com)TENANT_ID: l'ID tenantFILTER_KEY: una chiave di filtro (ad esempioPath)FILTER_VALUE: un valore di filtro (ad esempio"https://example.sharepoint.com/*")ENTITY_NAME: il nome di un'entità da cercare per il connettore (consulta la documentazione della risorsa)CONNECTOR_MODES: le modalità da attivare per il connettore (ad esempio"FEDERATED")
Inizializza Terraform:
terraform init -upgradeVisualizza l'anteprima della configurazione:
terraform planApplica la configurazione:
terraform applyQuando richiesto, conferma le modifiche.
Dopo aver applicato la configurazione, puoi visualizzare il connettore dati nell'elenco dei datastore e collegarlo a un'app Gemini Enterprise. Per ulteriori informazioni, consulta Collegare un datastore all'app e autorizzare Gemini Enterprise.
Aggiornare un connettore dati
Per utilizzare Terraform per aggiornare le impostazioni di un connettore dati esistente, fornisci le nuove impostazioni in json_params e fornisci tutti gli argomenti invariati con i relativi valori attuali in modo che Terraform non sostituisca la risorsa. Aggiungi tutti gli argomenti obbligatori che non devono essere aggiornati a ignore_changes nel blocco lifecycle.
Crea la configurazione Terraform. Questo esempio aggiorna l'impostazione
structured_search_filtercon un nuovo valore di filtro, ma elenca altri campi obbligatori comerefresh_interval,entitieseconnector_modescon i relativi valori attuali.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 ] } }Sostituisci quanto segue:
PROJECT_ID: il tuo Google Cloud ID progettoBILLING_PROJECT_ID: il tuo Google Cloud ID progettoLOCAL_NAME: il nome locale della risorsa TerraformLOCATION: la località del datastore, ad esempiousoglobal(per ulteriori informazioni, consulta Impegni di residenza dei dati e di elaborazione regionale di ML delle versioni Gemini Enterprise Standard e Plus)COLLECTION_ID: l'ID della raccoltaCOLLECTION_DISPLAY_NAME: il nome visualizzato della raccoltaDATA_SOURCE: il tipo di origine dati. Sono supportati i seguenti valori:bigqueryconfluencejirasalesforcesharepoint_federated_search
FILTER_KEY: una chiave di filtro per cui vuoi aggiornare il valore (ad esempioPath)UPDATED_FILTER_VALUE: il nuovo valore di filtro (ad esempiohttps://other.sharepoint.com/*)REFRESH_INTERVAL: l'intervallo di aggiornamentoENTITY_NAME: il nome di un'entità da cercare per il connettore (consulta la documentazione della risorsa)CONNECTOR_MODES: le modalità da attivare per il connettore (ad esempio"FEDERATED")
Esegui
terraform importper indicare che si tratta di un'operazione di aggiornamento:terraform import \ google_discovery_engine_data_connector.LOCAL_NAME \ projects/PROJECT_ID/locations/LOCATION/collections/COLLECTION_ID/dataConnectorVisualizza l'anteprima della configurazione:
terraform planL'output dovrebbe essere simile al seguente:
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.Assicurati che l'ultima riga dell'output specifichi
0 to add, 1 to change, 0 to destroy.Applica la configurazione:
terraform applyQuando richiesto, conferma le modifiche.
L'output dovrebbe essere simile al seguente:
Apply complete! Resources: 0 added, 1 changed, 0 destroyed.
Passaggi successivi
Per fornire un'interfaccia utente per fare query sui dati, crea un'app in Gemini Enterprise e collegala al datastore.
Per gestire l'elenco delle azioni per un connettore dati, consulta Gestire le azioni.