Estaba leyendo los documentos de Terraform y encontré estos dos comandos:

$ terraform import aws_instance.foo i-abcd1234
$ terraform import module.foo.aws_instance.bar i-abcd1234

Entonces me preguntaba cuál es la diferencia práctica dentro del estado de terraform cuando ejecuta estos dos comandos.

¡Gracias de antemano!

0
Christian Saiki 25 ene. 2021 a las 07:45

1 respuesta

La mejor respuesta

Cuando ejecuta terrafom import Terraform espera los recursos, importando para ser definido en su configuración.

Para su primer caso $ terraform import aws_instance.foo i-abcd1234, necesitaría definir al menos:

# main.tf
resource "aws_instance" "foo" {
}

Terraform actualizará el archivo de estado con detalles de AWS.

En el segundo, $ terraform import module.foo.aws_instance.bar i-abcd1234 Terraform espera que exista el módulo 'foo' que contiene el recurso 'aws_instance bar'. Consulta cuándo crear módulos y cómo componerlos. P.ej.

# modules/foo
resource "aws_instance" "foo" {
}

# main.tf
module "consul_cluster" {
  source = "./modules/aws-consul-cluster"
}

Si revisa el archivo de estado, verá que su recurso importado está anidado de manera diferente.

3
Styszma 25 ene. 2021 a las 07:28