Datenspeicher mit Terraform erstellen

Sie können mit Terraform einen generischen Gemini Enterprise-Datenspeicher erstellen oder Daten-Connectors für Atlassian Confluence, Atlassian Jira, BigQuery, Microsoft SharePoint oder Salesforce einrichten.

Hinweis

Führen Sie vor dem Erstellen eines Datenspeichers mit Terraform die folgenden Schritte aus:

  • Prüfen Sie, ob die Abrechnung für Ihr Google Cloud -Projekt aktiviert ist.

  • Sie benötigen die Rolle „Projekt-IAM-Administrator“ (roles/resourcemanager.projectIamAdmin) für Ihr Google Cloud Projekt sowie die Rolle „Gemini Enterprise-Administrator“ (roles/discoveryengine.agentspaceAdmin).

  • Optional: Wenn Sie eine Drittanbieter-Datenquelle wie Microsoft SharePoint mit Gemini Enterprise verbinden, rufen Sie Zugriffsanmeldedaten (z. B. API-Schlüssel oder Datenbankauthentifizierung) für die Datenquelle ab.

  • Prüfen Sie, ob Sie Version 7.7.0 oder höher des Terraform-Anbieters hashicorp/google verwenden:

    terraform {
      required_providers {
        google = {
          source  = "hashicorp/google"
          version = "7.7.0"
        }
      }
    }
    

Allgemeinen Datenspeicher erstellen

Wenn Sie mit Terraform einen leeren Datenspeicher erstellen möchten, verwenden Sie die Terraform-Ressource google_discovery_engine_data_store.

  1. Erstellen Sie die Terraform-Konfiguration:

    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
    }
    

    Ersetzen Sie Folgendes:

  2. Initialisieren Sie Terraform:

    terraform init -upgrade
    
  3. Vorschau der Konfiguration aufrufen:

    terraform plan
    
  4. Wenden Sie die Konfiguration an:

    terraform apply
    

Nachdem Sie den leeren Datenspeicher erstellt haben, können Sie Daten in den Datenspeicher aufnehmen. Verwenden Sie dazu die Google Cloud Console oder API-Befehle.

Daten-Connector erstellen

Wenn Sie mit Terraform einen Datenconnector für einen unterstützten Dienst erstellen möchten, verwenden Sie die Terraform-Ressource google_discovery_engine_data_connector. Fügen Sie Anmeldedaten für den Dienst sowie die Konfiguration des Suchfilters in json_params ein.

  1. Erstellen Sie die Terraform-Konfiguration:

    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"
      }
    }
    

    Ersetzen Sie Folgendes:

    • PROJECT_ID: Ihre Google Cloud Projekt-ID

    • BILLING_PROJECT_ID: Ihre Google Cloud Projekt-ID

    • LOCAL_NAME: Der lokale Name der Terraform-Ressource.

    • LOCATION: der Speicherort für den Datenspeicher, z. B. us oder global (weitere Informationen finden Sie unter Zusicherungen für den Datenstandort und die regionale Verarbeitung von ML für Gemini Enterprise Standard- und Plus-Versionen).

    • COLLECTION_ID: die Sammlungs-ID

    • COLLECTION_DISPLAY_NAME: Der Anzeigename der Sammlung

    • DATA_SOURCE: der Datenquellentyp. Folgende Werte werden unterstützt:

      • bigquery

      • confluence

      • jira

      • salesforce

      • sharepoint_federated_search

    • CLIENT_ID: die Client-ID für den Dienst

    • CLIENT_SECRET: der Clientschlüssel für den Dienst

    • INSTANCE_URI: Der URI Ihrer Instanz, z. B. https://your-tenant.sharepoint.com

    • TENANT_ID: die Mandanten-ID

    • FILTER_KEY: ein Filterschlüssel, z. B. Path

    • FILTER_VALUE: ein Filterwert, z. B. "https://example.sharepoint.com/*"

    • ENTITY_NAME: Der Name einer Entität, nach der der Connector suchen soll (siehe Ressourcendokumentation).

    • CONNECTOR_MODES: die Modi, die für den Connector aktiviert werden sollen (z. B. "FEDERATED")

  2. Initialisieren Sie Terraform:

    terraform init -upgrade
    
  3. Vorschau der Konfiguration aufrufen:

    terraform plan
    
  4. Wenden Sie die Konfiguration an:

    terraform apply
    

    Bestätigen Sie Ihre Änderungen, wenn Sie dazu aufgefordert werden.

Nachdem Sie die Konfiguration angewendet haben, können Sie den Daten-Connector in der Liste der Datenspeicher sehen und ihn mit einer Gemini Enterprise-App verbinden. Weitere Informationen finden Sie unter Datenspeicher mit App verbinden und Gemini Enterprise autorisieren.

Daten-Connector aktualisieren

Wenn Sie Terraform verwenden möchten, um die Einstellungen für einen vorhandenen Daten-Connector zu aktualisieren, geben Sie die neuen Einstellungen in json_params an und stellen Sie alle unveränderten Argumente mit ihren aktuellen Werten bereit, damit Terraform die Ressource nicht ersetzt. Fügen Sie alle erforderlichen Argumente, die nicht aktualisiert werden müssen, in ignore_changes im lifecycle-Block hinzu.

  1. Erstellen Sie die Terraform-Konfiguration. In diesem Beispiel wird die Einstellung structured_search_filter mit einem neuen Filterwert aktualisiert. Andere erforderliche Felder wie refresh_interval, entities und connector_modes werden mit ihren aktuellen Werten aufgeführt.

    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
        ]
      }
    }
    

    Ersetzen Sie Folgendes:

    • PROJECT_ID: Ihre Google Cloud Projekt-ID

    • BILLING_PROJECT_ID: Ihre Google Cloud Projekt-ID

    • LOCAL_NAME: Der lokale Name der Terraform-Ressource.

    • LOCATION: Der Speicherort für den Datenspeicher, z. B. us oder global. Weitere Informationen finden Sie unter Zusicherungen für den Datenstandort und die regionale Verarbeitung von ML für die Standard- und Plus-Versionen von Gemini Enterprise.

    • COLLECTION_ID: die Sammlungs-ID

    • COLLECTION_DISPLAY_NAME: Der Anzeigename der Sammlung

    • DATA_SOURCE: der Datenquellentyp. Folgende Werte werden unterstützt:

      • bigquery

      • confluence

      • jira

      • salesforce

      • sharepoint_federated_search

    • FILTER_KEY: Ein Filterschlüssel, für den Sie den Wert aktualisieren möchten (z. B. Path)

    • UPDATED_FILTER_VALUE: der neue Filterwert (z. B. https://other.sharepoint.com/*)

    • REFRESH_INTERVAL: das Aktualisierungsintervall

    • ENTITY_NAME: Der Name einer Entität, nach der der Connector suchen soll (siehe Ressourcendokumentation).

    • CONNECTOR_MODES: die Modi, die für den Connector aktiviert werden sollen (z. B. "FEDERATED")

  2. Führen Sie terraform import aus, um anzugeben, dass es sich um einen Aktualisierungsvorgang handelt:

    terraform import \
    google_discovery_engine_data_connector.LOCAL_NAME \
    projects/PROJECT_ID/locations/LOCATION/collections/COLLECTION_ID/dataConnector
    
  3. Vorschau der Konfiguration aufrufen:

    terraform plan
    

    Die Ausgabe sollte in etwa so aussehen:

    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.
    

    Achten Sie darauf, dass in der letzten Ausgabezeile 0 to add, 1 to change, 0 to destroy angegeben ist.

  4. Wenden Sie die Konfiguration an:

    terraform apply
    

    Bestätigen Sie Ihre Änderungen, wenn Sie dazu aufgefordert werden.

    Die Ausgabe sollte in etwa so aussehen:

    Apply complete! Resources: 0 added, 1 changed, 0 destroyed.
    

Nächste Schritte