Terraform을 사용하여 일반 Gemini Enterprise 데이터 스토어를 만들거나 Atlassian Confluence, Atlassian Jira, BigQuery, Microsoft SharePoint 또는 Salesforce용 데이터 커넥터를 설정할 수 있습니다.
시작하기 전에
Terraform을 사용하여 데이터 스토어를 만들기 전에 다음을 수행하세요.
프로젝트에 대한 프로젝트 IAM 관리자 (
roles/resourcemanager.projectIamAdmin) 역할과 Gemini Enterprise 관리자 (roles/discoveryengine.agentspaceAdmin) 역할이 있는지 확인합니다. Google Cloud선택사항: Microsoft SharePoint와 같은 서드 파티 데이터 소스를 Gemini Enterprise에 연결하는 경우 데이터 소스의 액세스 사용자 인증 정보 (예: API 키 또는 데이터베이스 인증)를 가져옵니다.
hashicorp/google Terraform 프로바이더 버전 7.7.0 이상을 사용하고 있는지 확인합니다.
terraform { required_providers { google = { source = "hashicorp/google" version = "7.7.0" } } }
일반 데이터 스토어 만들기
Terraform을 사용하여 빈 데이터 스토어를 만들려면
google_discovery_engine_data_store
Terraform 리소스를 사용합니다.
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 }다음을 바꿉니다.
PROJECT_ID: 프로젝트 ID Google CloudBILLING_PROJECT_ID: 결제 프로젝트 ID Google CloudLOCATION: 데이터 스토어의 위치(예:us또는global)(자세한 내용은 다음 참고: Gemini Enterprise Standard 및 Plus 에디션 데이터 상주 및 ML 리전 처리 약정)DATA_STORE_ID: 데이터 스토어 IDDATA_STORE_NAME: 데이터 스토어 이름
Terraform을 초기화합니다.
terraform init -upgrade구성을 미리 봅니다.
terraform plan구성을 적용합니다.
terraform apply
빈 데이터 스토어를 만든 후 데이터 스토어에 데이터를 수집할 수 있습니다. 다음을 사용하여 Google Cloud 콘솔 또는 API 명령어를 사용합니다.
데이터 커넥터 만들기
Terraform을 사용하여 지원되는 서비스의 데이터 커넥터를 만들려면
google_discovery_engine_data_connector
Terraform 리소스를 사용합니다. json_params에 서비스 사용자 인증 정보와 검색 필터 구성을 포함합니다.
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" } }다음을 바꿉니다.
PROJECT_ID: 프로젝트 ID Google CloudBILLING_PROJECT_ID: 결제 프로젝트 ID Google CloudLOCAL_NAME: Terraform 리소스의 로컬 이름LOCATION: 데이터 스토어의 위치(예:us또는global)(자세한 내용은 다음 참고: Gemini Enterprise Standard 및 Plus 에디션 데이터 상주 및 ML 리전 처리 약정)COLLECTION_ID: 컬렉션 IDCOLLECTION_DISPLAY_NAME: 컬렉션 표시 이름DATA_SOURCE: 데이터 소스 유형. 다음 값이 지원됩니다.bigqueryconfluencejirasalesforcesharepoint_federated_search
CLIENT_ID: 서비스의 클라이언트 IDCLIENT_SECRET: 서비스의 클라이언트 비밀번호INSTANCE_URI: 인스턴스의 URI (예:https://your-tenant.sharepoint.com)TENANT_ID: 테넌트 IDFILTER_KEY: 필터 키 (예:Path)FILTER_VALUE: 필터 값 (예:"https://example.sharepoint.com/*")CONNECTOR_MODES: 커넥터에 사용 설정할 모드 (예:"FEDERATED")
Terraform을 초기화합니다.
terraform init -upgrade구성을 미리 봅니다.
terraform plan구성을 적용합니다.
terraform apply메시지가 표시되면 변경사항을 확인합니다.
구성을 적용한 후 데이터 스토어 목록에서 데이터 커넥터를 확인하고 Gemini Enterprise 앱에 연결할 수 있습니다. 자세한 내용은 데이터 스토어를 앱에 연결하고 Gemini Enterprise 승인을 참조하세요.
데이터 커넥터 업데이트
Terraform을 사용하여 기존 데이터 커넥터의 설정을 업데이트하려면 json_params에 새 설정을 제공하고 Terraform에서 리소스를 바꾸지 않도록 변경되지 않은 인수를 현재 값과 함께 제공합니다. 업데이트할 필요가 없는 필수 인수를 lifecycle 블록의 ignore_changes에 추가합니다.
Terraform 구성을 만듭니다. 이 예에서는
structured_search_filter설정을 새 필터 값으로 업데이트하지만refresh_interval,entities,connector_modes와 같은 다른 필수 필드를 현재 값과 함께 나열합니다.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 ] } }다음을 바꿉니다.
PROJECT_ID: 프로젝트 ID Google CloudBILLING_PROJECT_ID: 결제 프로젝트 ID Google CloudLOCAL_NAME: Terraform 리소스의 로컬 이름LOCATION: 데이터 스토어의 위치(예:us또는global)(자세한 내용은 다음 참고: Gemini Enterprise Standard 및 Plus 에디션 데이터 상주 및 ML 리전 처리 약정)COLLECTION_ID: 컬렉션 IDCOLLECTION_DISPLAY_NAME: 컬렉션 표시 이름DATA_SOURCE: 데이터 소스 유형. 다음 값이 지원됩니다.bigqueryconfluencejirasalesforcesharepoint_federated_search
FILTER_KEY: 값을 업데이트하려는 필터 키 (예:Path)UPDATED_FILTER_VALUE: 새 필터 값 (예:https://other.sharepoint.com/*)REFRESH_INTERVAL: 새로고침 간격CONNECTOR_MODES: 커넥터에 사용 설정할 모드 (예:"FEDERATED")
terraform import를 실행하여 업데이트 작업임을 나타냅니다.terraform import \ google_discovery_engine_data_connector.LOCAL_NAME \ projects/PROJECT_ID/locations/LOCATION/collections/COLLECTION_ID/dataConnector구성을 미리 봅니다.
terraform plan출력은 다음과 비슷하게 표시됩니다.
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.출력의 마지막 줄에
0 to add, 1 to change, 0 to destroy가 지정되어 있는지 확인합니다.구성을 적용합니다.
terraform apply메시지가 표시되면 변경사항을 확인합니다.
출력은 다음과 비슷하게 표시됩니다.
Apply complete! Resources: 0 added, 1 changed, 0 destroyed.
다음 단계
데이터를 쿼리하는 사용자 인터페이스를 제공하려면 앱을 만들고 Gemini Enterprise에서 데이터 스토어에 연결합니다.
데이터 커넥터의 작업 목록을 관리하려면 작업 관리를 참고하세요.