For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.
기본 탐색 메뉴
Theme

OpenAI 리소스 가져오기 및 구성 불일치 해소

기존 리소스를 Terraform으로 관리하고 구성 드리프트를 감지하세요.

기존 OpenAI 리소스는 다시 만들 필요 없이 Terraform으로 가져올 수 있습니다. 안전하게 가져오려면 먼저 Terraform 구성을 원격 리소스의 현재 설정에 맞추세요. 가져오기 계획을 검토하고 적용한 뒤, 원하는 업데이트를 진행하기 전에 새 계획에 변경 사항이 없는지 확인하세요.

가져오기 블록을 사용하려면 Terraform 1.5 이상이 필요합니다.

리소스 선언 및 가져오기

각 기존 리소스를 현재 설정대로 선언한 다음, 프로바이더 참조 문서에 나온 ID 형식에 맞춰 import 블록을 추가하세요.

resource "openai_project" "existing" {
  name = "existing-project"
}

resource "openai_group" "existing" {
  name = "existing-group"
}

resource "openai_project_service_account" "existing" {
  project_id = openai_project.existing.project_id
  name       = "existing-service-account"
}

import {
  to = openai_project.existing
  id = "proj_123"
}

import {
  to = openai_group.existing
  id = "group_123"
}

import {
  to = openai_project_service_account.existing
  id = "proj_123/svc_acct_123"
}

계획을 저장하고 가져올 리소스를 미리 확인하세요.

terraform plan -out=tfplan
terraform show tfplan

계획에는 가져오기 작업이 표시되어야 하며, 원격 리소스에 대한 업데이트는 없어야 합니다. 업데이트가 표시되면 계속하기 전에 Terraform 구성을 현재 설정에 맞추세요. 저장한 계획을 적용해 리소스를 가져온 뒤 계획을 다시 실행하세요.

terraform apply tfplan
terraform plan

두 번째 계획에는 변경 사항이 없어야 합니다. Terraform에서 리소스를 어떻게 가져왔는지 기록하려면 가져오기 블록을 구성에 남겨 두세요.

자주 사용하는 가져오기 ID 형식은 다음과 같습니다.

리소스 가져오기 ID 형식
프로젝트 <project_id>
조직 그룹 <group_id>
프로젝트 역할 <project_id>/<role_id>
프로젝트 서비스 계정 <project_id>/<service_account_id>
프로젝트 그룹 역할 <project_id>/<group_id>/<role_id>
프로젝트 사용자 역할 <project_id>/<user_id>/<role_id>
프로젝트 요청 한도 <project_id>/<rate_limit_id>

각 리소스의 정확한 ID 형식은 프로바이더 참조 문서에서 확인하세요.

리소스를 가져오지 않고 조회하기

다른 시스템이 관리하는 리소스의 최신 정보가 Terraform에 필요할 때는 데이터 소스를 사용하세요. 프로바이더는 프로젝트, 그룹, 역할, 사용자, 역할 할당, 요청 한도, 모델 권한, 호스팅 도구 권한, 지출 알림, 데이터 보존, 인증서에 대한 데이터 소스를 제공합니다.

예를 들어 기존 프로젝트와 현재 해당 프로젝트에 속한 그룹을 다음과 같이 조회할 수 있습니다.

data "openai_project" "existing" {
  project_id = var.project_id
}

data "openai_project_groups" "existing" {
  project_id = data.openai_project.existing.project_id
}

output "project_groups" {
  value = data.openai_project_groups.existing.groups
}

프로바이더는 기존 프로젝트 서비스 계정을 ID로 가져올 수 있지만, 현재 서비스 계정용 데이터 소스는 제공하지 않습니다. 기존 서비스 계정을 Terraform으로 가져와야 한다면 프로젝트 ID와 서비스 계정 ID를 승인된 인벤토리에 보관하세요. API 키 초기 설정 및 서비스 계정 가져오기 절차는 서비스 계정 문서를 참고하세요.

구성 드리프트 감지 및 해소

일반 계획을 실행해 OpenAI의 현재 설정을 읽고 Terraform 구성에 지정한 값과 비교하세요.

terraform plan -detailed-exitcode

종료 코드가 0이면 변경 사항이 없고, 2면 계획에 변경 사항이 있으며, 1이면 Terraform에서 오류가 발생한 것입니다.

계획에 Terraform 외부에서 변경된 설정이 표시되면 다음 절차를 따르세요.

  1. 의도한 변경인지 확인하세요.
  2. 원격 변경 사항을 유지하려면 변경된 값에 맞게 Terraform 구성을 업데이트하세요.
  3. 원격 변경 사항을 되돌리려면 계획을 검토하고 적용해 구성에 지정한 값을 복원하세요.
  4. 계획을 다시 실행해 변경 사항이 없는지 반드시 확인하세요.

리소스 제거 시 동작

리소스 블록을 제거하면 Terraform 상태에서 해당 리소스가 제거됩니다. 원격 객체의 삭제 또는 설정 초기화 여부는 리소스 유형에 따라 다릅니다.

리소스 유형 제거 시 동작
openai_project 프로젝트를 보관 처리합니다. 보관 처리한 프로젝트는 복원할 수 없습니다.
openai_project_service_account 서비스 계정을 삭제합니다.
역할, 그룹, 멤버십 및 할당 리소스 해당 관리 대상 객체 또는 할당을 삭제합니다.
openai_project_model_permissions 프로젝트의 모델 권한 구성을 삭제합니다.
프로젝트 요청 한도, 호스팅 도구 권한 및 데이터 보존 리소스 Terraform 상태에서 리소스를 제거하며, 원격 설정은 그대로 유지합니다.