É possível usar o Terraform para criar um repositório de dados genérico do Gemini Enterprise ou configurar conectores de dados para o Atlassian Confluence, Atlassian Jira, BigQuery, Microsoft SharePoint ou Salesforce.
Antes de começar
Antes de usar o Terraform para criar um repositório de dados, faça o seguinte:
Verifique se o faturamento está ativado para o Google Cloud projeto.
Verifique se você tem o papel de administrador de IAM do projeto (
roles/resourcemanager.projectIamAdmin) para o Google Cloud projeto, bem como o papel de administrador do Gemini Enterprise (roles/discoveryengine.agentspaceAdmin) role.Opcional: se você estiver conectando uma fonte de dados de terceiros, como o Microsoft SharePoint, ao Gemini Enterprise, receba credenciais de acesso (como chaves de API ou autenticação de banco de dados) para a fonte de dados.
Verifique se você está usando a versão 7.7.0 ou mais recente do hashicorp/google provedor do Terraform:
terraform { required_providers { google = { source = "hashicorp/google" version = "7.7.0" } } }
Criar um repositório de dados genérico
Para usar o Terraform e criar um repositório de dados vazio, use o
google_discovery_engine_data_store
recurso do Terraform.
Crie a configuração do 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 }Substitua:
PROJECT_ID: ID do seu Google Cloud projetoBILLING_PROJECT_ID: ID do projeto de faturamento Google CloudLOCATION: o local do repositório de dados, comousouglobal(para mais informações, consulte Residência de dados e compromissos de processamento regional de ML das edições Standard e Plus do Gemini Enterprise)DATA_STORE_ID: o ID do repositório de dadosDATA_STORE_NAME: o nome do repositório de dados
Inicialize o Terraform:
terraform init -upgradeVisualize a configuração:
terraform planAplique a configuração:
terraform apply
Depois de criar o repositório de dados vazio, é possível ingerir dados nele usando o Google Cloud console ou comandos da API.
Criar um conector de dados
Para usar o Terraform e criar um conector de dados para um serviço compatível, use o
google_discovery_engine_data_connector
recurso do Terraform. Inclua credenciais para o serviço, bem como a configuração do filtro de pesquisa, em json_params.
Crie a configuração do 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" } }Substitua:
PROJECT_ID: ID do seu Google Cloud projetoBILLING_PROJECT_ID: ID do projeto de faturamento Google CloudLOCAL_NAME: o nome local do recurso do TerraformLOCATION: o local do repositório de dados, comousouglobal(para mais informações, consulte Residência de dados e compromissos de processamento regional de ML das edições Standard e Plus do Gemini Enterprise)COLLECTION_ID: o ID da coleçãoCOLLECTION_DISPLAY_NAME: o nome de exibição da coleçãoDATA_SOURCE: o tipo de fonte de dados. Os seguintes valores são aceitos:bigqueryconfluencejirasalesforcesharepoint_federated_search
CLIENT_ID: o ID do cliente para o serviçoCLIENT_SECRET: a chave secreta do cliente para o serviçoINSTANCE_URI: o URI da sua instância (por exemplo,https://your-tenant.sharepoint.com)TENANT_ID: o ID do locatárioFILTER_KEY: uma chave de filtro (por exemplo,Path)FILTER_VALUE: um valor de filtro (por exemplo,"https://example.sharepoint.com/*")ENTITY_NAME: o nome de uma entidade para o conector pesquisar (consulte a documentação do recurso)CONNECTOR_MODES: os modos a serem ativados para o conector (por exemplo,"FEDERATED")
Inicialize o Terraform:
terraform init -upgradeVisualize a configuração:
terraform planAplique a configuração:
terraform applyQuando solicitado, confirme as mudanças.
Depois de aplicar a configuração, você pode conferir o conector de dados na lista de repositórios de dados e conectá-lo a um app Gemini Enterprise. Para mais informações, consulte Conectar um repositório de dados ao app e autorizar o Gemini Enterprise.
Atualizar um conector de dados
Para usar o Terraform e atualizar as configurações de um conector de dados atual, forneça as novas configurações em json_params e forneça todos os argumentos inalterados com os valores atuais para que o Terraform não substitua o recurso. Adicione todos os argumentos necessários que não precisam ser atualizados para ignore_changes no bloco lifecycle.
Crie a configuração do Terraform. Este exemplo atualiza a configuração
structured_search_filtercom um novo valor de filtro, mas lista outros campos obrigatórios, comorefresh_interval,entitieseconnector_modes, com os valores atuais.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 ] } }Substitua:
PROJECT_ID: ID do seu Google Cloud projetoBILLING_PROJECT_ID: ID do projeto de faturamento Google CloudLOCAL_NAME: o nome local do recurso do TerraformLOCATION: o local do repositório de dados, comousouglobal(para mais informações, consulte Residência de dados e compromissos de processamento regional de ML das edições Standard e Plus do Gemini Enterprise)COLLECTION_ID: o ID da coleçãoCOLLECTION_DISPLAY_NAME: o nome de exibição da coleçãoDATA_SOURCE: o tipo de fonte de dados. Os seguintes valores são aceitos:bigqueryconfluencejirasalesforcesharepoint_federated_search
FILTER_KEY: uma chave de filtro para a qual você quer atualizar o valor (por exemplo,Path)UPDATED_FILTER_VALUE: o novo valor de filtro (por exemplo,https://other.sharepoint.com/*)REFRESH_INTERVAL: o intervalo de atualizaçãoENTITY_NAME: o nome de uma entidade para o conector pesquisar (consulte a documentação do recurso)CONNECTOR_MODES: os modos a serem ativados para o conector (por exemplo,"FEDERATED")
Execute
terraform importpara indicar que essa é uma operação de atualização:terraform import \ google_discovery_engine_data_connector.LOCAL_NAME \ projects/PROJECT_ID/locations/LOCATION/collections/COLLECTION_ID/dataConnectorVisualize a configuração:
terraform planA saída será semelhante a esta:
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.Verifique se a linha final da saída especifica
0 to add, 1 to change, 0 to destroy.Aplique a configuração:
terraform applyQuando solicitado, confirme as mudanças.
A saída será semelhante a esta:
Apply complete! Resources: 0 added, 1 changed, 0 destroyed.
A seguir
Para fornecer uma interface do usuário para consultar seus dados, crie um app no Gemini Enterprise e conecte-o ao seu repositório de dados.
Para gerenciar a lista de ações de um conector de dados, consulte Gerenciar ações.