Vous pouvez utiliser Terraform pour créer un data store Gemini Enterprise générique ou pour configurer des connecteurs de données pour Atlassian Confluence, Atlassian Jira, BigQuery, Microsoft SharePoint ou Salesforce.
Avant de commencer
Avant d'utiliser Terraform pour créer un data store, procédez comme suit :
Vérifiez si la facturation est activée pour votre Google Cloud projet.
Assurez-vous de disposer du rôle Administrateur de projet IAM (
roles/resourcemanager.projectIamAdmin) pour votre Google Cloud projet, ainsi que du rôle Administrateur Gemini Enterprise (roles/discoveryengine.agentspaceAdmin) rôle.Facultatif : Si vous connectez une source de données tierce telle que Microsoft SharePoint à Gemini Enterprise, obtenez des identifiants d'accès (tels que des clés API ou une authentification de base de données) pour la source de données.
Assurez-vous d'utiliser la version 7.7.0 ou ultérieure du fournisseur Terraform hashicorp/google :
terraform { required_providers { google = { source = "hashicorp/google" version = "7.7.0" } } }
Créer un data store générique
Pour utiliser Terraform afin de créer un data store vide, utilisez la
google_discovery_engine_data_store
ressource Terraform.
Créez la configuration 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 }Remplacez les éléments suivants :
PROJECT_ID: ID de votre Google Cloud projetBILLING_PROJECT_ID: ID de votre Google Cloud projet de facturationLOCATION: emplacement du data store, tel queusouglobal(pour en savoir plus, consultez Résidence des données et engagements de traitement régional ML pour les éditions Standard et Plus de Gemini Enterprise)DATA_STORE_ID: ID du data storeDATA_STORE_NAME: nom du data store
Initialisez Terraform :
terraform init -upgradePrévisualisez votre configuration :
terraform planAppliquez la configuration :
terraform apply
Après avoir créé le data store vide, vous pouvez ingérer des données dans le data store à l'aide de la Google Cloud console ou des commandes de l'API.
Créer un connecteur de données
Pour utiliser Terraform afin de créer un connecteur de données pour un service compatible, utilisez la
google_discovery_engine_data_connector
ressource Terraform. Incluez les identifiants du service, ainsi que la configuration du filtre de recherche, dans json_params.
Créez la configuration 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" } }Remplacez les éléments suivants :
PROJECT_ID: ID de votre Google Cloud projetBILLING_PROJECT_ID: ID de votre Google Cloud projet de facturationLOCAL_NAME: nom local de la ressource TerraformLOCATION: emplacement du data store, tel queusouglobal(pour en savoir plus, consultez Résidence des données et engagements de traitement régional ML pour les éditions Standard et Plus de Gemini Enterprise)COLLECTION_ID: ID de la collectionCOLLECTION_DISPLAY_NAME: nom à afficher de la collectionDATA_SOURCE: type de source de données. Les valeurs suivantes sont acceptées :bigqueryconfluencejirasalesforcesharepoint_federated_search
CLIENT_ID: ID client du serviceCLIENT_SECRET: code secret du client du serviceINSTANCE_URI: URI de votre instance (par exemple,https://your-tenant.sharepoint.com)TENANT_ID: ID du locataireFILTER_KEY: clé de filtre (par exemple,Path)FILTER_VALUE: valeur de filtre (par exemple,"https://example.sharepoint.com/*")ENTITY_NAME: nom d'une entité à rechercher par le connecteur (consultez la documentation sur les ressources)CONNECTOR_MODES: modes à activer pour le connecteur (par exemple,"FEDERATED")
Initialisez Terraform :
terraform init -upgradePrévisualisez votre configuration :
terraform planAppliquez la configuration :
terraform applyLorsque vous y êtes invité, confirmez vos modifications.
Une fois la configuration appliquée, vous pouvez voir le connecteur de données dans la liste des datastores et le connecter à une application Gemini Enterprise. Pour en savoir plus, consultez Connecter un data store à une application et autoriser Gemini Enterprise.
Mettre à jour un connecteur de données
Pour utiliser Terraform afin de mettre à jour les paramètres d'un connecteur de données existant, fournissez les nouveaux paramètres dans json_params, ainsi que tous les arguments inchangés avec leurs valeurs actuelles afin que Terraform ne remplace pas la ressource. Ajoutez tous les arguments requis qui n'ont pas besoin d'être mis à jour à ignore_changes dans le bloc lifecycle.
Créez la configuration Terraform. Cet exemple met à jour le paramètre
structured_search_filteravec une nouvelle valeur de filtre, mais répertorie d'autres champs obligatoires tels querefresh_interval,entitiesetconnector_modesavec leurs valeurs actuelles.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 ] } }Remplacez les éléments suivants :
PROJECT_ID: ID de votre Google Cloud projetBILLING_PROJECT_ID: ID de votre Google Cloud projet de facturationLOCAL_NAME: nom local de la ressource TerraformLOCATION: emplacement du data store, tel queusouglobal(pour en savoir plus, consultez Résidence des données et engagements de traitement régional ML pour les éditions Standard et Plus de Gemini Enterprise)COLLECTION_ID: ID de la collectionCOLLECTION_DISPLAY_NAME: nom à afficher de la collectionDATA_SOURCE: type de source de données. Les valeurs suivantes sont acceptées :bigqueryconfluencejirasalesforcesharepoint_federated_search
FILTER_KEY: clé de filtre pour laquelle vous souhaitez mettre à jour la valeur (par exemple,Path)UPDATED_FILTER_VALUE: nouvelle valeur de filtre (par exemple,https://other.sharepoint.com/*)REFRESH_INTERVAL: intervalle d'actualisationENTITY_NAME: nom d'une entité à rechercher par le connecteur (consultez la documentation sur les ressources)CONNECTOR_MODES: modes à activer pour le connecteur (par exemple,"FEDERATED")
Exécutez
terraform importpour indiquer qu'il s'agit d'une opération de mise à jour :terraform import \ google_discovery_engine_data_connector.LOCAL_NAME \ projects/PROJECT_ID/locations/LOCATION/collections/COLLECTION_ID/dataConnectorPrévisualisez votre configuration :
terraform planLa sortie devrait ressembler à ce qui suit :
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.Assurez-vous que la dernière ligne de sortie spécifie
0 to add, 1 to change, 0 to destroy.Appliquez la configuration :
terraform applyLorsque vous y êtes invité, confirmez vos modifications.
La sortie devrait ressembler à ce qui suit :
Apply complete! Resources: 0 added, 1 changed, 0 destroyed.
Étape suivante
Pour fournir une interface utilisateur permettant d'interroger vos données, créez une application dans Gemini Enterprise et associez-la à votre datastore.
Pour gérer la liste des actions d'un connecteur de données, consultez Gérer les actions.