For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.
Navegación principal

Importar y reconciliar recursos de OpenAI

Adopta recursos existentes y detecta desviaciones de configuración.

Importa los recursos existentes de OpenAI en lugar de volver a crearlos. Para adoptarlos de forma segura, comienza con una configuración que coincida con el recurso remoto, previsualiza y aplica la importación, y genera un plan sin cambios antes de realizar cualquier actualización prevista.

Los bloques de importación requieren Terraform 1.5 o posterior.

Declarar e importar recursos

Declara cada recurso existente con sus ajustes actuales y luego agrega un bloque import con el formato de ID indicado en la referencia del proveedor:

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

Previsualiza las importaciones en un plan guardado:

terraform plan -out=tfplan
terraform show tfplan

El plan debería mostrar las importaciones sin proponer actualizaciones de los recursos remotos. Si propone actualizaciones, haz que la configuración coincida con los ajustes actuales antes de continuar. Aplica el plan guardado para realizar las importaciones y luego ejecuta otro plan:

terraform apply tfplan
terraform plan

El segundo plan debería indicar que no hay cambios. Puedes conservar los bloques de importación en tu configuración como registro de cómo Terraform adoptó los recursos.

Estos son algunos formatos comunes de ID de importación:

RecursoFormato de ID de importación
Proyecto<project_id>
Grupo de la organización<group_id>
Rol del proyecto<project_id>/<role_id>
Cuenta de servicio del proyecto<project_id>/<service_account_id>
Rol de grupo del proyecto<project_id>/<group_id>/<role_id>
Rol de usuario del proyecto<project_id>/<user_id>/<role_id>
Límite de solicitudes del proyecto<project_id>/<rate_limit_id>

Consulta la referencia del proveedor para conocer el formato exacto de cada recurso.

Consultar recursos sin adoptarlos

Usa fuentes de datos cuando Terraform necesite información actual, pero otro sistema gestione el recurso. El proveedor incluye fuentes de datos para proyectos, grupos, roles, usuarios, asignaciones de roles, límites de solicitudes, permisos de modelos, permisos de herramientas alojadas, alertas de gasto, retención de datos y certificados.

Por ejemplo, consulta un proyecto existente y sus grupos actuales:

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
}

El proveedor puede importar una cuenta de servicio existente de un proyecto por su ID, pero actualmente no ofrece una fuente de datos para cuentas de servicio. Conserva los ID del proyecto y de la cuenta de servicio en tu inventario aprobado cuando necesites adoptar una cuenta de servicio existente. Consulta Cuentas de servicio para conocer la secuencia de configuración inicial de la clave de API e importación.

Detectar y reconciliar desviaciones

Ejecuta un plan normal para consultar los ajustes actuales de OpenAI y compararlos con los valores deseados en tu configuración de Terraform:

terraform plan -detailed-exitcode

El código de salida 0 significa que no hay cambios; 2, que el plan contiene cambios; y 1, que Terraform encontró un error.

Si el plan muestra un ajuste que cambió fuera de Terraform:

  1. Determina si el cambio fue intencional.
  2. Para conservar el cambio remoto, actualiza la configuración de Terraform para que coincida con él.
  3. Para deshacer el cambio remoto, revisa y aplica el plan para restaurar el valor configurado.
  4. Ejecuta otro plan y exige un resultado sin cambios.

Comprender qué ocurre al eliminar recursos

Al eliminar un bloque de recurso, el recurso se elimina del estado de Terraform, pero eso no siempre elimina o restablece el objeto remoto del mismo tipo:

Tipo de recursoComportamiento al eliminar
openai_projectArchiva el proyecto. No puedes restaurar un proyecto archivado.
openai_project_service_accountElimina la cuenta de servicio.
Recursos de roles, grupos, membresías y asignacionesElimina el objeto gestionado o la asignación correspondiente.
openai_project_model_permissionsElimina la configuración de permisos de modelos del proyecto.
Recursos de límites de solicitudes, permisos de herramientas alojadas y retención de datos del proyectoElimina el recurso del estado de Terraform sin restablecer el ajuste remoto.