(+351) 21 24 10006  ·  info@bconcepts.pt
Carnaxide, Lisboa

Cómo importar recursos de Azure a Terraform: paso a paso

João Barros 05 de July de 2026 4 min de lectura

Adoptar Terraform en un entorno de Azure que ya tiene recursos creados manualmente es un reto habitual: no quieres borrar nada, solo empezar a gestionar lo que ya existe. Importar recursos de Azure existentes a Terraform resuelve esto — pone la infraestructura actual bajo control de código sin recrearla. Esta guía muestra, paso a paso, cómo usar el comando terraform import para llevar un resource group existente al estado de Terraform de forma segura.

Requisitos previos

  • Terraform instalado (versión 1.5 o posterior recomendada).
  • Azure CLI instalado y con sesión iniciada mediante az login.
  • Permisos de lectura sobre la suscripción y los recursos que vas a importar.
  • Una carpeta vacía para el proyecto y un editor de texto a tu elección.

Paso 1: Preparar el provider y autenticarse

Crea un archivo main.tf y declara el provider azurerm. Para aprender, la forma más sencilla de autenticarse es reutilizar la sesión de Azure CLI, así que confirma primero que estás en la suscripción correcta.

terraform {
  required_providers {
    azurerm = {
      source  = "hashicorp/azurerm"
      version = "~> 4.0"
    }
  }
}

provider "azurerm" {
  features {}
}

En la terminal, selecciona la suscripción e inicializa el proyecto:

az account set --subscription "NOMBRE-O-ID-DE-LA-SUSCRIPCION"
terraform init

Paso 2: Declarar el bloque del recurso

El comando terraform import no genera código: asocia un recurso real a un bloque que ya debe existir en tu configuración. Por eso, declara primero el recurso, aunque sea solo con los atributos esenciales. Usaremos un resource group llamado rg-producao.

resource "azurerm_resource_group" "producao" {
  name     = "rg-producao"
  location = "westeurope"
}

Los valores de name y location deben coincidir exactamente con el recurso que ya existe en Azure; de lo contrario, Terraform propondrá recrearlo.

Paso 3: Obtener el ID del recurso en Azure

Cada recurso en Azure tiene un identificador único. Para el resource group, obtenlo con Azure CLI:

az group show --name rg-producao --query id --output tsv

El resultado tiene este formato, y es el que usarás en el paso siguiente:

/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg-producao

Paso 4: Ejecutar terraform import

Ahora enlaza la dirección del recurso en tu código (azurerm_resource_group.producao) con el ID real que obtuviste. La dirección es el "nombre interno" en Terraform; el ID es la referencia en Azure.

terraform import azurerm_resource_group.producao "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg-producao"

Si todo va bien, aparece el mensaje Import successful!. El recurso pasa a existir en el archivo de estado (terraform.tfstate), aunque tu código aún pueda estar incompleto.

Consejo: el estado puede guardar valores sensibles en texto plano. Usa siempre un backend remoto seguro (por ejemplo, una cuenta de almacenamiento de Azure) en proyectos reales.

Paso 5: Validar con terraform plan

Ejecuta un plan para comparar tu código con el estado que acabas de importar:

terraform plan

El objetivo es que el plan no proponga cambios. Si los propone, significa que a tu bloque le faltan atributos (etiquetas, por ejemplo) o que algún valor difiere del real. Ajusta el código y repite el plan hasta que quede limpio — así te aseguras de que Terraform no modificará ni recreará el recurso por accidente.

Verificar el resultado

Confirma que el recurso está realmente bajo la gestión de Terraform con dos comandos:

terraform state list
terraform state show azurerm_resource_group.producao

El primero debe listar azurerm_resource_group.producao; el segundo muestra todos los atributos guardados en el estado. Cuando terraform plan devuelva No changes. Your infrastructure matches the configuration., la importación se ha completado con éxito.

Conclusión

Has seguido el flujo completo: declarar el bloque, obtener el ID, importar y validar con plan. A partir de aquí puedes llevar a Terraform toda la infraestructura creada manualmente sin riesgo de recrearla. Para importar varios recursos a la vez, prueba los bloques import declarativos (disponibles desde Terraform 1.5), que incluso generan configuración con terraform plan -generate-config-out=generado.tf. ¿Cuál será el primer recurso de tu suscripción en entrar en Terraform?