Tiefes Zusammenführen mit mergeOverwrite und dict
Setzen Sie strukturierte Werte programmgesteuert zusammen.
Tiefes Zusammenführen mit mergeOverwrite und dict ist eine kostenlose DevOps Bootcamp-Lektion auf CoddyKit. Dies ist Lektion 1 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 DevOps Bootcamp-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der DevOps Bootcamp-Kurs umfasst insgesamt 4 Lektionen.
Maps in Templates erstellen
Manchmal müssen Sie innerhalb eines Templates eine Map zusammensetzen. Die Funktion dict erstellt eine Map aus abwechselnden Schlüssel-Wert-Paaren.
{{ $cfg := dict "level" "info" "json" true }}Warum Maps zusammenführen
Oft haben Sie Standardwerte des Charts und Überschreibungen durch Nutzer und möchten daraus eine einzige kombinierte Map erstellen. Genau das erzeugt ein merge.
Flaches Merge
Die Funktion merge kopiert Schlüssel aus Quell-Maps in ein Ziel, behält jedoch immer den Zielwert bei, wenn ein Schlüssel bereits vorhanden ist.
{{ $out := merge $user $defaults }}merge bevorzugt das Ziel
Bei merge gewinnt das erste Argument bei jedem widersprüchlichen Schlüssel. Daher eignet sich die Funktion besonders, wenn Benutzereingaben Ihre Standardwerte überschreiben sollen.
mergeOverwrite kennenlernen
Die Funktion mergeOverwrite macht das Gegenteil: Spätere Quell-Maps überschreiben das Ziel und legen ihre Werte darüber.
{{ $out := mergeOverwrite $defaults $user }}Tief statt flach
Beide Hilfsfunktionen führen rekursive Merges durch: Verschachtelte Maps werden Schlüssel für Schlüssel kombiniert, anstatt dass der gesamte Teilbaum vollständig ersetzt wird.
Warnung vor Mutation
Vorsicht: merge und mergeOverwrite verändern ihr erstes Argument direkt. Übergeben Sie ein neues dict, wenn das Original unverändert bleiben muss.
{{ $base := dict }}{{ $r := mergeOverwrite $base .Values.extra }}Ein Muster für geschichtete Standardwerte
Ein gängiges Muster besteht darin, mit einer Standardwerte-Map zu beginnen und anschließend Benutzerwerte darüberzulegen, sodass nicht gesetzte Schlüssel sicher auf die Standardwerte zurückfallen.
{{ $merged := mergeOverwrite (dict "port" 80) .Values.service }}Zusammengeführte Werte lesen
Nach dem Zusammenführen behandeln Sie das Ergebnis wie jede andere Map und lesen Schlüssel wie gewohnt mit dot oder der index-Funktion aus.
{{ $merged.port }}Das Ergebnis serialisieren
Um eine zusammengeführte Struktur als YAML auszugeben, leiten Sie sie durch toYaml und nindent, damit der Block korrekt eingerückt wird.
{{ toYaml $merged | nindent 4 }}Einen Schlüssel auswählen
Wenn ein Schlüsselname dynamisch ist oder ungewöhnliche Zeichen enthält, greifen Sie mit der Funktion index auf die Map zu, statt den Punktzugriff zu verwenden.
{{ index $merged "log-level" }}Kurztest
Kurztest zur Überschreibungsrichtung.
Zusammenfassung
Sie haben dict zum Erstellen von Maps kennengelernt, merge zum Beibehalten von Zielschlüsseln und mergeOverwrite, damit spätere Werte gewinnen – allesamt mit tiefen Merges. 🎉
Häufig gestellte Fragen
Ist die Lektion „Tiefes Zusammenführen mit mergeOverwrite und dict“ kostenlos?
Ja — der vollständige Text von „Tiefes Zusammenführen mit mergeOverwrite und dict“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des DevOps Bootcamp-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der DevOps Bootcamp-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Tiefes Zusammenführen mit mergeOverwrite und dict“?
Setzen Sie strukturierte Werte programmgesteuert zusammen. Du übst DevOps Bootcamp 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 DevOps Bootcamp zu starten?
Keine Vorkenntnisse erforderlich. DevOps Bootcamp 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 1 von 4.
Wie lange dauert die Lektion „Tiefes Zusammenführen mit mergeOverwrite und dict“?
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 DevOps Bootcamp-Lektion Code schreiben und ausführen?
Ja. Jede DevOps Bootcamp-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
- Tiefes Zusammenführen mit mergeOverwrite und dict
- tpl: Strings aus Values rendern
- Dateien mit range über .Files.Glob durchlaufen
- fail und benutzerdefinierte Validierungsprüfungen