Descripción general
En este lab, crearás dos VMs en la red predeterminada. Usaremos variables para definir los atributos de las VMs en el entorno de ejecución y valores de salida destinados a imprimir algunos atributos de los recursos.
Luego, agregaremos una dirección IP estática a la primera VM para examinar cómo maneja Terraform las dependencias implícitas. A continuación, crearemos un bucket de GCS indicándole las dependencias explícitas a la VM para examinar cómo maneja Terraform este tipo de dependencias.
Objetivos
En este lab, aprenderás a realizar las siguientes tareas:
- Usar variables y valores de salida
- Observar la dependencia implícita
- Crear una dependencia de recursos explícita
Tarea 1: Accede a la consola de Cloud
En cada lab, recibirás un proyecto de Google Cloud y un conjunto de recursos nuevos por tiempo limitado y sin costo adicional.
-
Haz clic en el botón Comenzar lab. Si debes pagar por el lab, se abrirá una ventana emergente para que selecciones tu forma de pago.
A la izquierda, se encuentra el panel Detalles del lab, que tiene estos elementos:
- El botón Abrir la consola de Google Cloud
- El tiempo restante
- Las credenciales temporales que debes usar para el lab
- Otra información para completar el lab, si es necesaria
-
Haz clic en Abrir la consola de Google Cloud (o haz clic con el botón derecho y selecciona Abrir el vínculo en una ventana de incógnito si ejecutas el navegador Chrome).
El lab inicia recursos y abre otra pestaña en la que se muestra la página de acceso.
Sugerencia: Ordena las pestañas en ventanas separadas, una junto a la otra.
Nota: Si ves el diálogo Elegir una cuenta, haz clic en Usar otra cuenta.
-
De ser necesario, copia el nombre de usuario a continuación y pégalo en el diálogo Acceder.
{{{user_0.username | "Username"}}}
También puedes encontrar el nombre de usuario en el panel Detalles del lab.
-
Haz clic en Siguiente.
-
Copia la contraseña que aparece a continuación y pégala en el diálogo Te damos la bienvenida.
{{{user_0.password | "Password"}}}
También puedes encontrar la contraseña en el panel Detalles del lab.
-
Haz clic en Siguiente.
Importante: Debes usar las credenciales que te proporciona el lab. No uses las credenciales de tu cuenta de Google Cloud.
Nota: Usar tu propia cuenta de Google Cloud para este lab podría generar cargos adicionales.
-
Haga clic para avanzar por las páginas siguientes:
- Acepta los Términos y Condiciones.
- No agregues opciones de recuperación o autenticación de dos factores (esta es una cuenta temporal).
- No te registres para obtener pruebas gratuitas.
Después de un momento, se abrirá la consola de Google Cloud en esta pestaña.
Nota: Para ver un menú con una lista de productos y servicios de Google Cloud, haz clic en el menú de navegación que se encuentra en la parte superior izquierda o escribe el nombre del servicio o producto en el campo Búsqueda.
Tarea 2: Inicializa Terraform
Inicializa Terraform y configura Google como el proveedor.
- Abre Cloud Shell (
) y ejecuta el siguiente comando para comprobar que Terraform esté instalado.
terraform -version
El resultado debería ser similar a este (no lo copies; es un ejemplo):
Terraform v1.5.7
Terraform ya está preinstalado en Cloud Shell para que puedas crear recursos de infraestructura directamente.
- Crea un directorio para tu configuración de Terraform y navega a él ejecutando el siguiente comando:
mkdir tfinfra && cd $_
- En Cloud Shell, haz clic en Abrir editor para abrir el editor de Cloud Shell.
- Haz clic en el botón Abrir en una ventana nueva para dejar el editor abierto en otra pestaña.
- Para crear un archivo nuevo en la carpeta
tfinfra, haz clic con el botón derecho en la carpeta tfinfra y clic en New File.
- Asígnale el nombre provider.tf al archivo nuevo y, luego, haz clic en OK.
- Agrega el siguiente código a
provider.tf:
provider "google" {
project = "{{{project_0.project_id|Project ID}}}"
region = "{{{project_0.default_region | "REGION"}}}"
zone = "{{{project_0.default_zone | "ZONE"}}}"
}
-
Para guardar provider.tf, haz clic en File > Save.
-
Inicializa Terraform ejecutando los siguientes comandos:
terraform init
El resultado debería ser similar a este (no lo copies; es un ejemplo):
Initializing the backend...
Initializing provider plugins...
- Finding hashicorp/google versions matching "4.15.0"...
- Installing hashicorp/google v4.15.0...
- Installed hashicorp/google v4.15.0 (signed by HashiCorp)
Terraform has created a lock file .terraform.lock.hcl to record the provider
selections it made above. Include this file in your version control repository
so that Terraform can guarantee to make the same selections by default when
you run "terraform init" in the future.
Terraform has been successfully initialized!
Terraform ya instaló los complementos necesarios para interactuar con la API de Google Cloud. No se requiere autenticación para la API. Las credenciales de Cloud Shell otorgan acceso al proyecto y a las APIs.
Pregunta:
En la parte que resta del lab, abordaremos los dos tipos de dependencias que Terraform puede manejar:
- Dependencias implícitas: conocidas para Terraform
- Dependencias explícitas: desconocidas para Terraform
Tarea 3: Visualiza la dependencia de recursos implícita
Para demostrar cómo infiere Terraform una dependencia implícita, le asignamos una dirección IP estática a la instancia de VM.
Crea una instancia de VM
Creemos una instancia de VM y parametricemos su configuración definiendo variables:
- Para crear un archivo nuevo, haz clic con el botón derecho en la carpeta
tfinfra y clic en New File.
- Asígnale el nombre instance.tf al archivo nuevo y, luego, ábrelo.
- Copia el siguiente código en
instance.tf:
resource google_compute_instance "vm_instance" {
name = "${var.instance_name}"
zone = "${var.instance_zone}"
machine_type = "${var.instance_type}"
boot_disk {
initialize_params {
image = "debian-cloud/debian-11"
}
}
network_interface {
network = "default"
access_config {
# Asígnale una IP con NAT uno a uno a la instancia
}
}
}
- Para guardar
instance.tf, haz clic en Archivo > Guardar.
Crea variables
- Haz clic con el botón derecho en la carpeta
tfinfra y clic en New File para crear un archivo nuevo destinado a las variables.
- Asígnale el nombre
variables.tf y, luego, haz clic en OK.
- Agrega las siguientes propiedades a
variables.tf:
variable "instance_name" {
type = string
description = "Name for the Google Compute instance"
}
variable "instance_zone" {
type = string
description = "Zone for the Google Compute instance"
}
variable "instance_type" {
type = string
description = "Disk type of the Google Compute instance"
default = "e2-medium"
}
Cuando le asignas un valor predeterminado a instance_type, haces que la variable sea opcional. Tanto instance_name como instance_zone son necesarios y los definirás en el entorno de ejecución.
- Para guardar
variable.tf, haz clic en FIle > Save.
Crea valores de resultado
- Haz clic con el botón derecho en la carpeta
tfinfra y clic en New File para crear un archivo nuevo destinado a los resultados.
- Asígnale el nombre
outputs.tf y, luego, haz clic en OK.
- Agrega las siguientes propiedades a
outputs.tf:
output "network_IP" {
value = google_compute_instance.vm_instance.instance_id
description = "The internal ip address of the instance"
}
output "instance_link" {
value = google_compute_instance.vm_instance.self_link
description = "The URI of the created resource."
}
- Para guardar
outputs.tf, haz clic en File > Save.
Asigna una IP estática
- Ahora, agrega contenido a la configuración asignándole una IP estática a la instancia de VM en
instance.tf
resource "google_compute_address" "vm_static_ip" {
name = "terraform-static-ip"
}
Esto te parecerá similar al ejemplo anterior de agregar un recurso de instancia de VM, salvo que esta vez crearás un tipo de recurso google_compute_address, que asigna una dirección IP reservada a tu proyecto.
- Actualiza la configuración de network_interface para tu instancia con el siguiente código:
network_interface {
network = "default"
access_config {
# Asígnale una IP con NAT uno a uno a la instancia
nat_ip = google_compute_address.vm_static_ip.address
}
}
El código final será como se muestra a continuación.
resource "google_compute_address" "vm_static_ip" {
name = "terraform-static-ip"
}
resource google_compute_instance "vm_instance" {
name = "${var.instance_name}"
zone = "${var.instance_zone}"
machine_type = "${var.instance_type}"
boot_disk {
initialize_params {
image = "debian-cloud/debian-11"
}
}
network_interface {
network = "default"
access_config {
# Asígnale una IP con NAT uno a uno a la instancia
nat_ip = google_compute_address.vm_static_ip.address
}
}
}
- Inicializa Terraform ejecutando el siguiente comando:
terraform init
- Obtén una vista previa de los recursos que se crearon ejecutando el siguiente comando:
terraform plan
- Si se te solicita, ingresa los detalles para la creación de instancias como se muestra a continuación:
- Visualiza el orden en que se crearán los recursos ejecutando el siguiente comando:
terraform apply
- Si se te solicita, ingresa los detalles para la creación de instancias como se muestra a continuación:
- Para confirmar las acciones previstas, escribe
yes.
Nota: Observa que Terraform maneja la dependencia implícita automáticamente creando una dirección IP estática antes de la instancia.
google_compute_address.vm_static_ip: Creating...
google_compute_address.vm_static_ip: Creation complete after 2s [id=projects/qwiklabs-gcp-03-4662a5b49176/regions/{{{project_0.default_region | "REGION"}}}/addresses/terraform-static-ip]
google_compute_instance.vm_instance: Creating...
google_compute_instance.vm_instance: Still creating... [10s elapsed]
google_compute_instance.vm_instance: Creation complete after 15s [id=projects/qwiklabs-gcp-03-4662a5b49176/zones/{{{project_0.default_zone | "ZONE"}}}/instances/myinstance]
Apply complete! Resources: 2 added, 0 changed, 0 destroyed.
Verifícalo en la consola de Cloud
En la consola de Google Cloud, verifica que se hayan creado los recursos.
-
En el menú de navegación (
) de la consola de Google Cloud, haz clic en Compute Engine > Instancias de VM.
-
Observa que se cree una instancia llamada myinstance.

-
Verifica la dirección IP estática. En el menú de navegación (
), haz clic en Redes de VPC > Direcciones IP > Direcciones IP externas.

Haz clic en Revisar mi progreso para verificar que se creó la dirección IP estática.
Crear una IP estática mediante una dependencia implícita
Haz clic en Revisar mi progreso para verificar que se creó la VM.
Crear una instancia de VM mediante una dependencia implícita
Tarea 4: Crea una dependencia explícita
Las dependencias explícitas se usan para informar dependencias entre recursos que no son visibles para Terraform. En este ejemplo, considera que ejecutarás una dependencia en una instancia que espera usar un bucket de Cloud Storage específico, pero esa dependencia está configurada dentro del código de la aplicación y, por lo tanto, no es visible para Terraform. En ese caso, puedes usar depends_on para declarar explícitamente la dependencia.
- Para crear un archivo nuevo, haz clic con el botón derecho en la carpeta
tfinfra y clic en New File.
- Asígnale el nombre exp.tf y, luego, haz clic en OK.
- Agrega un bucket de Cloud Storage y una instancia con una dependencia explícita en el bucket. Para ello, agrega el siguiente código base a
exp.tf:
# Crea una instancia nueva que utiliza el bucket
resource "google_compute_instance" "another_instance" {
name = "terraform-instance-2"
machine_type = "e2-micro"
boot_disk {
initialize_params {
image = "debian-cloud/debian-11"
}
}
network_interface {
network = "default"
access_config {
}
}
# Le indica a Terraform que esta instancia de VM debe crearse solo después de que
# se haya creado el bucket de almacenamiento.
depends_on = [google_storage_bucket.example_bucket]
}
- Agrega el siguiente código para crear un bucket.
# Recurso nuevo para el bucket de almacenamiento que utilizará nuestra aplicación.
resource "google_storage_bucket" "example_bucket" {
name = "<UNIQUE-BUCKET-NAME>"
location = "US"
website {
main_page_suffix = "index.html"
not_found_page = "404.html"
}
}
Nota: Los buckets de almacenamiento deben ser únicos a nivel global, por lo que tendrás que reemplazar UNIQUE-BUCKET-NAME por un nombre válido y único para un bucket. Una buena manera de hacerlo es usar el nombre del proyecto y la fecha.
Ten en cuenta que, en nuestro código, la configuración de la instancia de VM se agrega antes del bucket de GCS. Cuando ejecutes terraform apply, notarás que el orden en que se definen los recursos en un archivo de configuración de Terraform no influye en la forma en que aplica los cambios.
El código final será como se muestra a continuación:
resource "google_compute_instance" "another_instance" {
name = "terraform-instance-2"
machine_type = "e2-micro"
boot_disk {
initialize_params {
image = "debian-cloud/debian-11"
}
}
network_interface {
network = "default"
access_config {
}
}
# Le indica a Terraform que esta instancia de VM debe crearse solo después de que
# se haya creado el bucket de almacenamiento.
depends_on = [google_storage_bucket.example_bucket]
}
resource "google_storage_bucket" "example_bucket" {
name = "<UNIQUE-BUCKET-NAME>"
location = "US"
website {
main_page_suffix = "index.html"
not_found_page = "404.html"
}
}
-
Para guardar exp.tf, haz clic en Archivo > Guardar.
-
Obtén una vista previa de los recursos que se crearon ejecutando el siguiente comando:
terraform plan
Si se te solicita, ingresa los detalles para la creación de instancias como se muestra a continuación:
- Visualiza el orden en que se crearán los recursos ejecutando el siguiente comando:
terraform apply
Si se te solicita, ingresa los detalles para la creación de instancias como se muestra a continuación:
-
Para confirmar las acciones previstas, escribe yes.
-
Observa que, debido a la dependencia explícita, la instancia de procesamiento se crea después del bucket de Cloud Storage.
Enter a value: yes
google_storage_bucket.example_bucket: Creating...
google_storage_bucket.example_bucket: Creation complete after 1s [id=qwiklabs-gcp-03-4662a5b49176-abc]
google_compute_instance.another_instance: Creating...
google_compute_instance.another_instance: Still creating... [10s elapsed]
google_compute_instance.another_instance: Creation complete after 14s [id=projects/qwiklabs-gcp-03-4662a5b49176/zones/{{{project_0.default_zone | "ZONE"}}}/instances/terraform-instance-2]
Apply complete! Resources: 2 added, 0 changed, 0 destroyed.
Verifícalo en la consola de Cloud
En la consola de Google Cloud, verifica que se hayan creado los recursos.
-
En el menú de navegación (
) de la consola de Google Cloud, haz clic en Compute Engine > Instancias de VM.
-
Observa la instancia terraform-instance-2 que se creó.
-
Verifica el bucket de Cloud Storage que se creó. En el menú de navegación (
), haz clic en Cloud Storage > Buckets.
Haz clic en Revisar mi progreso para verificar que se creó el bucket.
Crear un bucket de Cloud Storage a través de una dependencia explícita
Haz clic en Revisar mi progreso para verificar que se creó la VM.
Crear un recurso de instancia de VM a través de una dependencia explícita
Nota: Si recibes un mensaje de error, revisa los pasos previos para asegurarte de que la configuración coincida con las instrucciones del lab. Si no puedes solucionar el problema de la configuración, descarga y consulta estos archivos de configuración terminados:
Tarea 5: Visualiza el gráfico de dependencias
- Para visualizar el recurso del gráfico de dependencias del recurso que se creó, ejecuta el siguiente comando:
terraform graph | dot -Tpng > graph.png
- Ve al editor y observa que se creó un archivo llamado graph.png. Haz clic en el archivo para ver el gráfico de dependencias.
Para comprender cómo leer este gráfico, visita esta página.
Repaso
En este lab, usaste una instancia de VM con una dirección IP estática para ver cómo Terraform maneja las dependencias de recursos implícitas. Luego, creaste una dependencia explícita para lo que agregaste el argumento depend_on y, así, pudiste crear un bucket de GCS antes de crear una instancia de VM. También viste el gráfico de dependencias que Terraform usa para hacer un seguimiento de la creación de recursos.
Fin del lab
Cuando hayas completado el lab, haz clic en Finalizar lab. Google Skills quitará los recursos que usaste y limpiará la cuenta.
Tendrás la oportunidad de calificar tu experiencia en el lab. Selecciona la cantidad de estrellas que corresponda, ingresa un comentario y haz clic en Enviar.
La cantidad de estrellas indica lo siguiente:
- 1 estrella = Muy insatisfecho
- 2 estrellas = Insatisfecho
- 3 estrellas = Ni satisfecho ni insatisfecho
- 4 estrellas = Satisfecho
- 5 estrellas = Muy satisfecho
Puedes cerrar el cuadro de diálogo si no quieres proporcionar comentarios.
Para enviar comentarios, sugerencias o correcciones, usa la pestaña Asistencia.
Copyright 2026 Google LLC. Todos los derechos reservados. Google y el logotipo de Google son marcas de Google LLC. El resto de los nombres de productos y empresas pueden ser marcas de las respectivas empresas a las que están asociados.