Terraform-Schleifen effektiv nutzen
(insight.infograb.net)- Beim Aufbau von Infrastruktur in der Cloud sollte man Kostenersparnis, schnellere Bereitstellung, Konsistenz, Stabilität und Wiederverwendbarkeit berücksichtigen; statt über die Web-Konsole zu arbeiten, ist es sinnvoll, Infrastruktur mit IaC-Tools aufzubauen
- Terraform ist Open Source und das am häufigsten verwendete IaC-Tool
- Um Terraform-Code effizient und wirkungsvoll zu schreiben, ist es wichtig, die von Terraform bereitgestellten Funktionen passend einzusetzen
- Terraform-Schleifen
- Allgemeine deklarative Sprachen haben meist keine Schleifen, aber Terraform unterstützt verschiedene Funktionen, mit denen sich Schleifen verwenden lassen
- Typische Schleifen sind:
count,for_each- Parameter
count: Wiederholung von Ressourcen und Modulen - Ausdruck
for_each: Wiederholung von Ressourcen, Inline-Blöcken innerhalb von Ressourcen und Modulen
- Parameter
- Einsatz der einzelnen Schleifen
count: geeignet, wenn die zu erstellenden Ressourcen fast identisch sind und sich nicht ändern; ermöglicht eine schnelle und knappe Erstellungfor_each: geeignet für Ressourcen mit eindeutigen Namen oder Daten sowie für Ressourcen, die nicht neu erstellt werden sollten; ermöglicht sichere Erstellung und Änderungen
- Count
- Der Parameter
countakzeptiert ganze Zahlen und erstellt durch Wiederholung komplette Ressourcen oder Module - Bei einer Konfiguration mit
countkann man übercount.indexauf den voncounterzeugten Index zugreifen - Einschränkungen von Count
countwiederholt die gesamte Ressource, aber keine Inline-Blöcke innerhalb der Ressource- Wenn bei mit
counterzeugten Ressourcen ein Wert in der Mitte entfernt wird, werden alle nachfolgenden Werte gelöscht und neu erstellt. Das Endergebnis ist zwar identisch, kann aber problematisch sein, wenn Ressourcen nicht neu erstellt werden dürfen
- Der Parameter
- For_each
- Der Ausdruck
for_eachiteriert überlist,setundmapund erstellt durch Wiederholung komplette Ressourcen, Inline-Blöcke innerhalb von Ressourcen und Module - Bei einer Konfiguration mit
for_eachkann man miteach.keyundeach.valueauf den jeweiligen Schlüssel und Wert zugreifen - Bei der Verwendung von
for_eachfür Ressourcen werden Listen nicht unterstützt - In der Collection werden das zu iterierende
setodermapdefiniert, und in der Config kann man miteach.valuedie in der Collection definierten Schlüssel und Werte verwenden
- Der Ausdruck
Noch keine Kommentare.