0Pricing
DevOps Bootcamp · Aula

Definindo o escopo de um bloco com with

Restrinja o ponto a uma subárvore e conheça suas armadilhas.

Definindo o escopo de um bloco com with é uma aula grátis de DevOps Bootcamp no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de DevOps Bootcamp, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de DevOps Bootcamp inclui 4 aulas no total.

Pare de repetir caminhos longos

Digitar .Values.image.repository repetidamente fica trabalhoso. A ação with restringe o ponto a uma subárvore para que você possa escrever caminhos mais curtos.

A ação with

Um bloco with começa com {{ with SOMETHING }} e termina com {{ end }}. Dentro dele, o ponto é redefinido para o que você passou.

{{ with .Values.image }}
repository: {{ .repository }}
tag: {{ .tag }}
{{ end }}

O ponto entra

Uma vez dentro do bloco, .repository significa .Values.image.repository. A palavra-chave with vincula novamente o ponto à subárvore, encurtando todos os caminhos abaixo dela.

image:
  repository: nginx
  tag: "1.27"

Ele também funciona como proteção

Se o valor estiver vazio ou ausente, with ignorará todo o bloco. Assim, ele restringe o ponto e também funciona como um if ao mesmo tempo. 🛡️

Adicionando um else

Assim como if, with aceita um ramo else. O else é renderizado quando o valor está vazio, oferecendo uma alternativa organizada para configurações opcionais.

{{ with .Values.resources }}
resources:
{{ toYaml . | indent 2 }}
{{ else }}
# no resources set
{{ end }}

A armadilha do escopo

Aqui está a armadilha: dentro de with, o ponto deixa de ser a raiz. Portanto, .Release.Name falha, pois Release não existe nessa subárvore.

Acesse a raiz com $

Para usar valores da raiz dentro de with, prefixe-os com $. O cifrão sempre aponta para o contexto raiz original, independentemente da profundidade.

{{ with .Values.image }}
name: {{ $.Release.Name }}
image: {{ .repository }}
{{ end }}

Mantenha os blocos pequenos

Como with altera o ponto, blocos grandes ficam confusos rapidamente. Mantenha as seções with curtas para que fique sempre claro para onde o ponto aponta.

with versus if

Use if quando quiser apenas testar um sinalizador e use with quando também quiser entrar nesse valor. with altera o ponto; if o mantém.

Visualize o escopo

Não tem certeza do que o ponto contém? Renderize com helm template e leia a saída, ou imprima o escopo ao depurar um bloco with complicado.

helm template ./mychart

Aninhando blocos with

Você pode aninhar um with dentro de outro para se aprofundar. Cada nível move o ponto um passo adiante, portanto acompanhe onde você está.

{{ with .Values.image }}
{{ with .pullSecrets }}
# . is now pullSecrets
{{ end }}
{{ end }}

Verificação rápida

Dentro de um bloco {{ with .Values.image }}, você tenta ler .Release.Name, mas ele está vazio.

Recapitulação

Agora você sabe definir o escopo do ponto com with, obter uma proteção automática contra valores vazios, adicionar uma alternativa else e alcançar a raiz com $. Modelos mais limpos! 🎯

Perguntas Frequentes

A aula “Definindo o escopo de um bloco com with” é grátis?

Sim — o texto completo de “Definindo o escopo de um bloco com with” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de DevOps Bootcamp, atualize para CoddyKit PRO. O curso de DevOps Bootcamp inclui 4 aulas no total.

O que vou aprender em “Definindo o escopo de um bloco com with”?

Restrinja o ponto a uma subárvore e conheça suas armadilhas. Você pratica DevOps Bootcamp com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar DevOps Bootcamp?

Nenhuma experiência prévia é necessária. DevOps Bootcamp no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.

Quanto tempo leva a aula “Definindo o escopo de um bloco com with”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de DevOps Bootcamp?

Sim. Cada aula de DevOps Bootcamp inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Blocos condicionais com if e else
  2. Veracidade e operadores em condições
  3. Percorrendo listas e mapas com range
  4. Definindo o escopo de um bloco com with
← Voltar para DevOps Bootcamp