0Pricing
Terraform Infrastructure as Code · Lección

Consulta de datos con fuentes de datos

Utilice fuentes de datos para obtener información sobre infraestructura existente o servicios externos, lo que permite crear configuraciones más dinámicas y adaptables.

Consulta de datos con fuentes de datos es una lección gratuita de Terraform Infrastructure as Code en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Terraform Infrastructure as Code, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Terraform Infrastructure as Code incluye 4 lecciones en total.

¿Qué son las fuentes de datos?

En Terraform, a menudo necesitamos hacer referencia a infraestructura existente o a datos externos que no gestiona nuestra configuración actual.

¡Aquí entran en juego las fuentes de datos! Permiten que su configuración de Terraform obtenga información sobre recursos que ya se han aprovisionado o sobre servicios externos.

Fuentes de datos frente a recursos

Es importante distinguir las fuentes de datos de los recursos.

  • Los recursos definen la infraestructura que Terraform creará, actualizará o eliminará.
  • Las fuentes de datos solo obtienen información sobre infraestructura o datos existentes. No crean ni modifican nada.

Considérelas como consultas de solo lectura para su infraestructura.

Casos de uso prácticos

Las fuentes de datos resultan especialmente útiles para:

  • Encontrar el ID de una Virtual Private Cloud (VPC) existente.
  • Obtener la Amazon Machine Image (AMI) más reciente para una instancia EC2.
  • Recuperar secretos de un servicio de gestión de secretos.
  • Buscar registros DNS o configuraciones de red.

Hacen que sus configuraciones sean más dinámicas y dependan menos de valores codificados.

Defina una fuente de datos

Un bloque de fuente de datos tiene un aspecto similar al de un bloque de recurso. Comienza con la palabra clave data, seguida del proveedor y el tipo, y después un nombre local.

data "aws_vpc" "selected" {
  filter {
    name   = "tag:Name"
    values = ["my-existing-vpc"]
  }
}

Utilice los datos obtenidos

Cuando una fuente de datos obtiene información, sus atributos están disponibles para otras partes de su configuración. Puede hacer referencia a ellos mediante la sintaxis: data.<TYPE>.<NAME>.<ATTRIBUTE>.

Por ejemplo, para obtener el ID de la VPC seleccionada:

output "vpc_id" {
  value = data.aws_vpc.selected.id
}

Obtenga la AMI más reciente

Una tarea habitual es encontrar la Amazon Machine Image (AMI) más reciente para una instancia EC2. Esto evita codificar los ID de las AMI y hace que su configuración sea más sólida.

Esta es la forma de obtener la AMI más reciente de Amazon Linux 2:

provider "aws" {
  region = "us-east-1"
}

data "aws_ami" "amazon_linux_2" {
  most_recent = true
  owners      = ["amazon"]

  filter {
    name   = "name"
    values = ["amzn2-ami-hvm-*-x86_64-gp2"]
  }

  filter {
    name   = "virtualization-type"
    values = ["hvm"]
  }
}

output "latest_ami_id" {
  value = data.aws_ami.amazon_linux_2.id
}

Documento de política de S3 dinámico

Las fuentes de datos no sirven únicamente para recursos de la nube. La fuente de datos aws_iam_policy_document ayuda a construir políticas IAM complejas de forma estructurada.

No crea una política, sino que genera el documento JSON que después puede aplicar a un recurso como un bucket de S3.

provider "aws" {
  region = "us-east-1"
}

data "aws_iam_policy_document" "s3_read_only_policy" {
  statement {
    principals {
      type        = "AWS"
      identifiers = ["arn:aws:iam::123456789012:user/example-user"]
    }
    actions = [
      "s3:GetObject",
      "s3:ListBucket"
    ]
    resources = [
      "arn:aws:s3:::my-example-bucket",
      "arn:aws:s3:::my-example-bucket/*"
    ]
  }
}

output "policy_json" {
  value = data.aws_iam_policy_document.s3_read_only_policy.json
}

Perfeccione su búsqueda

Muchas fuentes de datos admiten bloques filter. Estos permiten especificar criterios para acotar los resultados y garantizar que obtenga el recurso o los datos correctos.

Los filtros suelen aceptar un name (el atributo por el que se filtra) y values (una lista de valores aceptables para ese atributo).

data "aws_instance" "web" {
  instance_state_names = ["running"]
  filter {
    name   = "tag:Environment"
    values = ["production"]
  }
  filter {
    name   = "instance-type"
    values = ["t2.micro", "t3.micro"]
  }
}

Buenas prácticas para fuentes de datos

Para mantener sus configuraciones limpias y eficientes:

  • Sea específico: utilice filtros para asegurarse de obtener exactamente los datos que necesita y evitar ambigüedades.
  • Idempotencia: las fuentes de datos son inherentemente idempotentes, lo que significa que ejecutarlas varias veces produce el mismo resultado.
  • Minimice las llamadas: obtenga datos solo cuando sea necesario para acelerar las operaciones de terraform plan.
  • Combínelas con outputs: utilice outputs para exponer los datos obtenidos que puedan necesitar otras configuraciones o usuarios.

Cuestionario sobre fuentes de datos

¿Cuáles de las siguientes afirmaciones sobre las fuentes de datos de Terraform son VERDADERAS?

Resumen: consultar datos

Ha aprendido cómo las fuentes de datos de Terraform permiten que sus configuraciones consulten y obtengan información sobre infraestructura existente o servicios externos.

Esta potente funcionalidad permite crear configuraciones dinámicas, flexibles y sólidas, ya que evita valores codificados y se adapta al estado actual de su entorno. Recuerde: las fuentes de datos solo leen; nunca crean ni modifican.

Preguntas frecuentes

¿La lección «Consulta de datos con fuentes de datos» es gratis?

Sí — el texto completo de «Consulta de datos con fuentes de datos» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Terraform Infrastructure as Code, actualiza a CoddyKit PRO. El curso de Terraform Infrastructure as Code incluye 4 lecciones en total.

¿Qué aprenderé en «Consulta de datos con fuentes de datos»?

Utilice fuentes de datos para obtener información sobre infraestructura existente o servicios externos, lo que permite crear configuraciones más dinámicas y adaptables. Practicas Terraform Infrastructure as Code con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Terraform Infrastructure as Code?

No se requiere experiencia previa. Terraform Infrastructure as Code en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.

¿Cuánto tiempo toma la lección «Consulta de datos con fuentes de datos»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Terraform Infrastructure as Code?

Sí. Cada lección de Terraform Infrastructure as Code incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Consulta de datos con fuentes de datos
  2. Provisionadores local-exec y remote-exec
  3. Recursos nulos y triggers
  4. Uso de datos externos y plantillas
← Volver a Terraform Infrastructure as Code