Limitare l'ambito di un blocco con with
Restringa il punto a un sottoalbero e ne gestisca le insidie
Limitare l'ambito di un blocco con with è una lezione DevOps Bootcamp gratuita su CoddyKit. Questa è la lezione 4 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento DevOps Bootcamp, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso DevOps Bootcamp include 4 lezioni in totale.
Smettere di ripetere percorsi lunghi
Scrivere più volte .Values.image.repository diventa rumoroso. L'azione with restringe il punto a un sottoalbero, così può scrivere percorsi più brevi.
L'azione with
Un blocco with inizia con {{ with SOMETHING }} e termina con {{ end }}. Al suo interno, il punto viene reimpostato su ciò che è stato passato.
{{ with .Values.image }}
repository: {{ .repository }}
tag: {{ .tag }}
{{ end }}Il punto entra nel sottoalbero
All'interno, .repository equivale a .Values.image.repository. La parola chiave with riassegna il punto al sottoalbero, accorciando ogni percorso successivo.
image:
repository: nginx
tag: "1.27"Funziona anche da controllo
Se il valore è empty o mancante, with salta l'intero blocco. In questo modo restringe lo scope del punto e funziona contemporaneamente come un if. 🛡️
Aggiungere un else
Come if, anche with accetta un ramo else. Else viene visualizzato quando il valore è vuoto, offrendo un fallback ordinato per la configurazione opzionale.
{{ with .Values.resources }}
resources:
{{ toYaml . | indent 2 }}
{{ else }}
# no resources set
{{ end }}La trappola dell'ambito
Ecco il problema: all'interno di with, il punto non indica più la radice. Quindi .Release.Name non funziona, perché Release non si trova all'interno del sottoalbero.
Risalire con $
Per usare i valori della radice all'interno di with, li preceda con $. Il simbolo del dollaro indica sempre il contesto radice originale, indipendentemente dalla profondità corrente.
{{ with .Values.image }}
name: {{ $.Release.Name }}
image: {{ .repository }}
{{ end }}Mantenga piccoli i blocchi
Poiché with sostituisce il punto, i blocchi grandi diventano rapidamente fonte di confusione. Mantenga brevi le sezioni with, così sarà sempre chiaro a cosa punta il punto.
with e if
Usi if quando deve solo verificare un flag e usi with quando vuole anche entrare nel valore corrispondente. with modifica il punto; if lo lascia invariato.
Visualizzare l'ambito
Non è sicuro di cosa contenga il punto? Esegua il rendering con helm template e legga l'output, oppure stampi l'ambito durante il debug di un blocco with complesso.
helm template ./mychartAnnidare blocchi with
Può annidare un with all'interno di un altro per scendere più in profondità. Ogni livello sposta il punto di un passaggio verso il basso, quindi tenga traccia della posizione corrente.
{{ with .Values.image }}
{{ with .pullSecrets }}
# . is now pullSecrets
{{ end }}
{{ end }}Verifica rapida
All'interno di un blocco {{ with .Values.image }}, prova a leggere .Release.Name, ma il risultato è vuoto.
Riepilogo
Ora sa come definire l'ambito del punto con with, ottenere automaticamente un controllo sul valore vuoto, aggiungere un fallback else e raggiungere la radice con $. Template più ordinati! 🎯
Domande Frequenti
La lezione «Limitare l'ambito di un blocco con with» è gratuita?
Sì — il testo completo di «Limitare l'ambito di un blocco con with» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso DevOps Bootcamp, passa a CoddyKit PRO. Il corso DevOps Bootcamp include 4 lezioni in totale.
Cosa imparerò in «Limitare l'ambito di un blocco con with»?
Restringa il punto a un sottoalbero e ne gestisca le insidie Eserciti DevOps Bootcamp con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare DevOps Bootcamp?
Non è richiesta alcuna esperienza precedente. DevOps Bootcamp su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.
Quanto tempo richiede la lezione «Limitare l'ambito di un blocco con with»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione DevOps Bootcamp?
Sì. Ogni lezione DevOps Bootcamp include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Blocchi condizionali con if e else
- Valori di verità e operatori nelle condizioni
- Iterare su elenchi e mappe con range
- Limitare l'ambito di un blocco con with