For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.
Navegação principal

Importe e reconcilie recursos da OpenAI

Adote recursos existentes e detecte divergências de configuração.

Importe recursos existentes da OpenAI em vez de recriá-los. Para uma adoção segura, comece com uma configuração que corresponda ao recurso remoto, visualize e aplique a importação e gere um plano sem alterações antes de realizar qualquer atualização desejada.

Os blocos de importação exigem o Terraform 1.5 ou posterior.

Declare e importe recursos

Declare cada recurso existente usando suas configurações atuais e, em seguida, adicione um bloco import com o formato de ID indicado na referência do provedor:

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

Visualize as importações em um plano salvo:

terraform plan -out=tfplan
terraform show tfplan

O plano deve mostrar as importações sem propor atualizações nos recursos remotos. Se ele propuser atualizações, ajuste a configuração para que corresponda às configurações atuais antes de continuar. Aplique o plano salvo para realizar as importações e, em seguida, execute outro plano:

terraform apply tfplan
terraform plan

O segundo plano deve indicar que não há alterações. Você pode manter os blocos de importação na configuração como um registro de como o Terraform adotou os recursos.

Os formatos comuns de ID de importação incluem:

RecursoFormato de ID de importação
Projeto<project_id>
Grupo da organização<group_id>
Função do projeto<project_id>/<role_id>
Conta de serviço do projeto<project_id>/<service_account_id>
Função de grupo no projeto<project_id>/<group_id>/<role_id>
Função de usuário no projeto<project_id>/<user_id>/<role_id>
Limite de taxa do projeto<project_id>/<rate_limit_id>

Consulte a referência do provedor para saber o formato exato de cada recurso.

Leia recursos sem adotá-los

Use fontes de dados quando o Terraform precisar de informações atuais, mas outro sistema for responsável pelo recurso. O provedor inclui fontes de dados para projetos, grupos, funções, usuários, atribuições de funções, limites de taxa, permissões de modelos, permissões de ferramentas hospedadas, alertas de gastos, retenção de dados e certificados.

Por exemplo, leia um projeto existente e seus grupos atuais:

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
}

O provedor pode importar uma conta de serviço de projeto existente pelo ID, mas atualmente não oferece uma fonte de dados para contas de serviço. Mantenha os IDs do projeto e da conta de serviço no inventário aprovado quando precisar adotar uma conta de serviço existente. Consulte Contas de serviço para ver a sequência de configuração inicial da chave de API e importação.

Detecte e reconcilie divergências

Execute um plano normal para ler as configurações atuais da OpenAI e compará-las com os valores desejados na configuração do Terraform:

terraform plan -detailed-exitcode

O código de saída 0 significa que não há alterações, 2 significa que o plano contém alterações e 1 significa que o Terraform encontrou um erro.

Se o plano mostrar uma configuração que foi alterada fora do Terraform:

  1. Determine se a alteração foi intencional.
  2. Para manter a alteração remota, atualize a configuração do Terraform para que corresponda a ela.
  3. Para desfazer a alteração remota, revise e aplique o plano para restaurar o valor configurado.
  4. Execute outro plano e exija um resultado sem alterações.

Entenda o comportamento de remoção

Remover um bloco de recurso remove o recurso do estado do Terraform, mas nem sempre exclui ou redefine o objeto remoto correspondente:

Tipo de recursoComportamento de remoção
openai_projectArquiva o projeto. Não é possível restaurar um projeto arquivado.
openai_project_service_accountExclui a conta de serviço.
Recursos de funções, grupos, associações e atribuiçõesExclui o objeto gerenciado ou a atribuição correspondente.
openai_project_model_permissionsExclui a configuração de permissões de modelos do projeto.
Recursos de limite de taxa do projeto, permissões de ferramentas hospedadas e retenção de dadosRemove o recurso do estado do Terraform sem redefinir a configuração remota.