Diferencias entre bloques Data e Import en Terraform
Clase 29 de 37 • Curso de Terraform
Resumen
¿Cuál es la diferencia principal entre los módulos data
e import
en Terraform?
El mundo de la infraestructura como código es vasto y complejo, pero entender algunas de sus diferencias clave puede mejorar significativamente tu uso de herramientas como Terraform. En particular, distinguir entre los módulos data
e import
es esencial para gestionar eficientemente tus recursos en la nube. Aquí exploraremos las particularidades y diferencias de estos dos módulos, basándonos en ejemplos claros y directos.
¿Cómo funciona el módulo data
?
El módulo data
juega un rol crucial cuando necesitas leer las propiedades de un recurso existente en Terraform, pero sin añadirlo al estado principal de tu script. Es decir, data
permite acceder a los datos introspectivos de un recurso de manera segura y no intrusiva.
- Funcionalidad: Lees las propiedades de un recurso sin modificarlo.
- Estado en Terraform: Registra solo los datos leídos, no el recurso completo.
- Uso ideal: Cuando necesitas obtener información sobre un recurso externo o preexistente sin querer integrarlo como parte activa de tu infraestructura en Terraform.
Veamos un ejemplo simplificado de data
en Terraform:
data "azurerm_virtual_network" "example" {
name = "existing-network"
resource_group_name = "existing-resources"
}
¿Qué permite el módulo import
en Terraform?
En contraste, el módulo import
es tu puerta de entrada a convertir un recurso existente en parte activa de tu infraestructura gestionada por Terraform. Esto es especialmente útil cuando deseas tener un control total sobre un recurso, incluyendo su modificación y eliminación.
- Funcionalidad: Transfiere un recurso completo al script de Terraform, permitiendo manipulación y gestión.
- Estado en Terraform: Registra todo el recurso para que interactúe íntegramente con tu infraestructura gestionada por Terraform.
- Uso ideal: Necesario cuando deseas gestionar activamente un recurso ya existente en tu entorno de Terraform.
A continuación, un ejemplo básico del uso de import
:
terraform import azurerm_storage_account.example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/exampleResourceGroup/providers/Microsoft.Storage/storageAccounts/example
¿Cuándo deberías usar data
o import
?
Elegir entre data
e import
depende principalmente del nivel de control que necesitas sobre un recurso:
-
Escenarios para
data
:- Cuando simplemente necesitas consultar información de un recurso.
- Si no es necesario modificar o eliminar el recurso desde Terraform.
- Ideal para evitar la afectación de recursos de terceros.
-
Escenarios para
import
:- Cuando necesitas gestionar, modificar o eliminar un recurso usando Terraform.
- Hace parte de tu infraestructura bajo gestión y monitorización constante.
- Útil para recursos que deseas integrar completamente bajo Terraform.
Conocer estas diferencias no solo facilita un uso más eficiente de Terraform, sino que previene errores críticos como la destrucción accidental de infraestructuras importantes. Dominar data
e import
te ofrece flexibilidad y precisión, dos habilidades esenciales para cualquier profesional del DevOps moderno.
¡Sigue aprendiendo y explorando! Entender profundamente herramientas como Terraform expandirá tus capacidades en la gestión de infraestructuras de manera masiva, eficiente y segura.