Terraform Cheatsheet

Terraform CheatsheetKapitel 08 von 12

Terraform Import und Refactoring

Stand Terraform 1.17 · Edition 2026.11 · Release-Daten geprüft am 30. Oktober 2026

import-Block (1.5+)

Bestehende Infrastruktur deklarativ adoptieren: planbar, reviewbar, im normalen Plan/Apply-Zyklus. -generate-config-out=<neue Datei> (experimentell, nur Root-Modul, ohne count/for_each) erzeugt HCL für importierte Objekte ohne Config. for_each am import-Block seit 1.7, import-Blöcke in Child-Modulen seit 1.16.

Statt id geht seit 1.12 identity = {...} (strukturierte Resource Identity, sofern der Provider sie liefert; schließt id aus).

terraform query (1.14+): list-Blöcke in *.tfquery.hcl finden bestehende Objekte, -generate-config-out liefert Config + import-Blöcke.

moved / removed

moved (1.1+): Adresse geändert (Rename, Modul-Umzug), Terraform migriert den State beim Plan, kein state mv.

removed (1.7+): Objekt aus Config + State entfernen, ohne es zu zerstören (destroy = false).

import {
  to = aws_s3_bucket.logs
  id = "legacy-logs-bucket"
}
moved {
  from = aws_instance.app
  to   = module.compute.aws_instance.app
}
removed {
  from = aws_s3_bucket.archiv
  lifecycle { destroy = false }
}