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 projet Google Cloud .
Assurez-vous de disposer du rôle Administrateur IAM de projet (
roles/resourcemanager.projectIamAdmin) pour votre projet Google Cloud , ainsi que du rôle Administrateur Gemini Enterprise (roles/discoveryengine.agentspaceAdmin).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 ressource Terraform google_discovery_engine_data_store.
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 projet Google CloudBILLING_PROJECT_ID: ID de votre projet de facturation Google CloudLOCATION: emplacement du data store, tel queusouglobal(pour en savoir plus, consultez Engagements concernant la résidence des données et le traitement régional du 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 y ingérer des données à l'aide de la console Google Cloud 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 ressource Terraform google_discovery_engine_data_connector. 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 projet Google CloudBILLING_PROJECT_ID: ID de votre projet de facturation Google CloudLOCAL_NAME: nom local de la ressource TerraformLOCATION: emplacement du data store, tel queusouglobal(pour en savoir plus, consultez Engagements concernant la résidence des données et le traitement régional du 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 pour le 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é que le connecteur doit rechercher (voir 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.
Après avoir appliqué la configuration, vous pouvez voir le connecteur de données dans la liste des datastores et l'associer à une application Gemini Enterprise. Pour en savoir plus, consultez Associer 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 et indiquez 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 liste 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 projet Google CloudBILLING_PROJECT_ID: ID de votre projet de facturation Google CloudLOCAL_NAME: nom local de la ressource TerraformLOCATION: emplacement du data store, tel queusouglobal(pour en savoir plus, consultez Engagements concernant la résidence des données et le traitement régional du 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 dont vous souhaitez modifier la valeur (par exemple,Path)UPDATED_FILTER_VALUE: nouvelle valeur du filtre (par exemple,https://other.sharepoint.com/*)REFRESH_INTERVAL: intervalle d'actualisationENTITY_NAME: nom d'une entité que le connecteur doit rechercher (voir 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 résultat indique
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.
Étapes suivantes
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.