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

Cómo crear un Resource Group en Azure con Terraform

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

Terraform permite crear infraestructura en Azure de forma repetible, describiendo lo que quieres en archivos de texto en lugar de hacer clic en el portal. Crear un Resource Group en Azure con Terraform es el primer paso para automatizar recursos: el grupo actúa como un "contenedor" lógico que reúne y organiza todo lo que provisiones después. Es también la forma ideal de aprender el flujo de trabajo de Terraform.

Requisitos previos

  • Una suscripción de Azure activa (basta el nivel gratuito).
  • Terraform instalado (versión 1.0 o superior).
  • La Azure CLI instalada, para la autenticación.
  • Un editor de texto (por ejemplo, VS Code).

Paso 1: Autenticarse en Azure

Terraform necesita permiso para comunicarse con Azure. La forma más sencilla es iniciar sesión con la Azure CLI: Terraform reutiliza esas credenciales automáticamente. En producción usarías un service principal, pero para aprender, az login es más que suficiente.

az login
az account set --subscription "NOME_OU_ID_DA_SUBSCRICAO"

Paso 2: Crear el archivo de configuración

Crea una carpeta nueva y, dentro, un archivo llamado main.tf. Empieza por declarar el provider azurerm, que le indica a Terraform que vas a trabajar con Azure. El bloque features {} es obligatorio, aunque quede vacío.

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

provider "azurerm" {
  features {}
}

Paso 3: Definir el Resource Group

Todavía en main.tf, añade un bloque resource de tipo azurerm_resource_group. Dale un nombre interno (aquí, rg) y define el name y la location: la región donde vivirá el grupo.

resource "azurerm_resource_group" "rg" {
  name     = "rg-tutorial-bconcepts"
  location = "West Europe"
}
Consejo: elige la location más cercana a tus usuarios para reducir la latencia y, a menudo, el coste.

Paso 4: Inicializar Terraform

Abre la terminal en la carpeta del proyecto y ejecuta terraform init. Este comando descarga el provider azurerm y prepara la carpeta de trabajo.

terraform init

Paso 5: Revisar el plan y aplicar

Con terraform plan ves lo que se va a crear, sin cambiar nada. Si estás de acuerdo, terraform apply crea el Resource Group en Azure. Escribe yes cuando se pida confirmación. En el plan, cada línea con un + representa un recurso que se creará: deberías ver exactamente uno.

terraform plan
terraform apply

Paso 6: Referenciar el grupo en otro recurso

La gran ventaja de Terraform es enlazar recursos entre sí. Para verlo en acción, añade una Storage Account que use el Resource Group que creaste. Fíjate en cómo resource_group_name y location apuntan al bloque anterior en lugar de repetir los valores a mano.

resource "azurerm_storage_account" "sa" {
  name                     = "stbconcepts0706"
  resource_group_name      = azurerm_resource_group.rg.name
  location                 = azurerm_resource_group.rg.location
  account_tier             = "Standard"
  account_replication_type = "LRS"
}

output "storage_account_url" {
  value = azurerm_storage_account.sa.primary_blob_endpoint
}

Si vuelves a ejecutar terraform apply, Terraform crea solo el nuevo recurso y muestra el output al final. El nombre de la Storage Account debe ser único a nivel global y solo puede contener letras minúsculas y números.

Comprobar el resultado

Confirma que el grupo se creó de dos maneras. En la terminal, usa la Azure CLI; en el portal, busca "Resource groups". Si aparece el nombre, todo salió bien. También puedes abrir el archivo terraform.tfstate, donde Terraform guarda el estado actual de tu infraestructura.

az group show --name "rg-tutorial-bconcepts" --output table

Conclusión

En pocos pasos pasaste de una carpeta vacía a infraestructura real en Azure, definida como código y fácil de repetir. Cuando ya no necesites los recursos, ejecuta terraform destroy para eliminarlos y evitar costes. ¿Cuál será el próximo recurso en tu main.tf: una red virtual o una base de datos?