Null-Ressourcen und Trigger
Entdecken Sie `null_resource`, um beliebige Befehle auszuführen, die keiner echten Cloud-Ressource entsprechen, und verwenden Sie Trigger, um zu steuern, wann Provisioner ausgeführt werden.
Null-Ressourcen und Trigger ist eine kostenlose Terraform Infrastructure as Code-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Terraform Infrastructure as Code-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Terraform Infrastructure as Code-Kurs umfasst insgesamt 4 Lektionen.
Was ist null_resource?
Terraform's null_resource ist ein spezieller Ressourcentyp, der kein Infrastruktur-Objekt bei Ihrem Cloud-Anbieter direkt erstellt oder verwaltet.
Stattdessen dient er als Platzhalter zum Ausführen beliebiger Befehle oder Skripte, häufig für Aufgaben außerhalb des üblichen Bereitstellungsumfangs von Ressourcen.
Warum null_resource verwenden?
Vielleicht fragen Sie sich, warum Sie eine „null“-Ressource benötigen. Sie ist äußerst nützlich für:
- Lokale Skripte ausführen: Befehle auf dem Rechner ausführen, auf dem Terraform ausgeführt wird (z. B. zum Vorbereiten von Konfigurationsdateien).
- Aktionen nach der Bereitstellung: Einrichtungs- oder Bereinigungsaufgaben durchführen, nachdem die eigentlichen Ressourcen bereitgestellt wurden.
- Mit externen APIs interagieren: Wenn für einen bestimmten Dienst kein dedizierter Terraform-Provider vorhanden ist.
- Benutzerdefinierte Logik: Benutzerdefinierte Schritte koordinieren, die nicht an eine bestimmte Cloud-Ressource gebunden sind.
Grundlegende Struktur von null_resource
Ein null_resource-Block sieht wie jede andere Terraform-Ressource aus. Ohne Provisioner oder Trigger erstellt er lediglich ein „null“-Objekt im Terraform-Zustand und tut sonst nichts.
Er wird typischerweise mit Provisionern kombiniert, um Befehle auszuführen, und mit Triggern, um zu steuern, wann diese Befehle ausgeführt werden.
Einfaches null_resource-Beispiel
Hier sehen Sie eine minimale null_resource. Wenn Sie terraform apply dafür ausführen, wird sie im Zustand angelegt, aber es findet keine externe Aktion statt.
Sie ist lediglich ein Platzhalter, der für die Erweiterung um Aktionen bereitsteht.
resource "null_resource" "my_placeholder" {
# This resource exists in state but performs no action.
# It's ready to attach provisioners or triggers.
}Provisioner mit null_resource
Die eigentliche Stärke von null_resource zeigt sich in Kombination mit Provisionern.
Mit Provisionern können Sie Skripte oder Befehle auf dem Rechner ausführen, auf dem Terraform läuft (local-exec), oder direkt auf der entfernten Ressource (remote-exec, bei null_resource jedoch seltener).
Dadurch wird null_resource zu einem Ausführer von Aktionen.
Trigger kennenlernen
triggers ist eine Zuordnung beliebiger Schlüssel-Wert-Paare, die innerhalb eines null_resource-Blocks definiert wird.
Damit teilen Sie Terraform mit: „Wenn sich ein Wert in dieser Zuordnung ändert, muss diese null_resource (und ihre Provisioner) erneut ausgeführt werden.“
Das ist entscheidend dafür, dass null_resource auf Änderungen in Ihrer Infrastruktur reagieren kann.
Funktionsweise von Triggern
Wenn sich ein Wert in der triggers-Zuordnung ändert, erkennt Terraform eine Änderung an der null_resource.
Während eines terraform apply führt Terraform anschließend Folgendes aus:
- Die vorhandene
null_resourcewird zerstört (falls sie vorhanden ist). - Die
null_resourcewird neu erstellt. - Zugehörige Provisioner werden erneut ausgeführt.
Dieser Mechanismus stellt sicher, dass Ihre benutzerdefinierten Aktionen nur ausgeführt werden, wenn sich relevante Abhängigkeiten ändern.
Beispiel: Trigger und local-exec
Hier verwenden wir eine null_resource, um die Aktualisierung einer Konfigurationsdatei anhand einer einfachen Variable zu simulieren. Der local-exec-Provisioner führt einen Befehl aus, und die triggers stellen sicher, dass er bei einer Änderung von var.app_version erneut ausgeführt wird.
variable "app_version" {
description = "The version of the application."
type = string
default = "1.0.0"
}
resource "null_resource" "update_config_file" {
triggers = {
version_change = var.app_version
}
provisioner "local-exec" {
command = "echo 'Config updated for version: ${self.triggers.version_change}' > app_config.txt"
}
}Bewährte Vorgehensweisen und Alternativen
Obwohl null_resource leistungsfähig ist, sollten Sie sie mit Bedacht einsetzen:
- Provider bevorzugen: Wenn für eine Aufgabe ein dedizierter Terraform-Provider oder eine Ressource vorhanden ist, verwenden Sie stattdessen diese.
- Idempotenz sicherstellen: Stellen Sie sicher, dass die von Provisionern ausgeführten Skripte ohne Nebenwirkungen mehrfach ausgeführt werden können.
- Zustandsverwaltung vermeiden: Versuchen Sie nicht, externen Zustand mit
null_resourcezu verwalten. Dafür sind Backends für den Remote-Zustand vorgesehen. external-Datenquelle in Betracht ziehen: Für komplexe externe Logik, die strukturierte Daten zurückgibt, kann dieexternal-Datenquelle eine übersichtlichere Alternative sein.
Schnelltest: Null-Ressourcen
Sie haben null_resource und triggers kennengelernt. Testen wir nun Ihr Verständnis.
Rückblick: Null-Ressourcen und Trigger
In dieser Lektion haben Sie die vielseitigen Einsatzmöglichkeiten von Terraform's null_resource kennengelernt – einem leistungsstarken Werkzeug zum Ausführen benutzerdefinierter Befehle und Skripte, die keinen konkreten Cloud-Ressourcen entsprechen.
Außerdem haben Sie triggers kennengelernt, einen Mechanismus innerhalb von null_resource, mit dem Sie Abhängigkeiten definieren und sicherstellen können, dass Provisioner erneut ausgeführt werden, sobald sich diese Abhängigkeiten ändern. Dadurch wird eine dynamische und reaktive benutzerdefinierte Automatisierung im Rahmen Ihrer IaC möglich.
Lerne Terraform Infrastructure as Code mit einem KI-Tutor — kostenlos
Schreibe und führe echten Code in deinem Browser aus, bekomme sofortige Hilfe von einem 24/7 KI-Tutor und setze dein Lernen im Web oder in der App fort.
- Kurse
- 12
- Lektionen
- 48
Häufig gestellte Fragen
Ist die Lektion „Null-Ressourcen und Trigger“ kostenlos?
Ja — der vollständige Text von „Null-Ressourcen und Trigger“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Terraform Infrastructure as Code-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Terraform Infrastructure as Code-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Null-Ressourcen und Trigger“?
Entdecken Sie `null_resource`, um beliebige Befehle auszuführen, die keiner echten Cloud-Ressource entsprechen, und verwenden Sie Trigger, um zu steuern, wann Provisioner ausgeführt werden. Du übst Terraform Infrastructure as Code mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Terraform Infrastructure as Code zu starten?
Keine Vorkenntnisse erforderlich. Terraform Infrastructure as Code auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.
Wie lange dauert die Lektion „Null-Ressourcen und Trigger“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Terraform Infrastructure as Code-Lektion Code schreiben und ausführen?
Ja. Jede Terraform Infrastructure as Code-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Daten mit Data Sources abfragen
- Lokale und Remote-Exec-Provisioner
- Null-Ressourcen und Trigger
- Externe Daten und Templates verwenden