0Pricing
DevOps Bootcamp · 课时

分配模板变量

捕获值,以便在块中重复使用

分配模板变量 是 CoddyKit 上的免费 DevOps Bootcamp 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 DevOps Bootcamp 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 DevOps Bootcamp 课程共包含 4 节课。

变量的作用

当同一个值在模板中多次出现时,请将它只捕获到一个变量中,这样就不必到处重复冗长的路径。

赋值语法

您可以使用美元符号名称和冒号等号运算符声明变量。在 Helm 中,$name 保存右侧表达式的结果。

{{ $name := .Values.appName }}

变量以美元符号开头

每个模板变量都必须以美元符号开头。Helm 就是通过这一点将变量与点号上下文中的字段区分开来。

读取变量

完成赋值后,您可以像使用任何值一样将变量放入 YAML 中。无论您在哪里写入 $name,Helm 都会替换为捕获的结果。

metadata:
  name: {{ $name }}

捕获内置对象

变量特别适合保存冗长的表达式。将发布名称保存一次,之后就可以重复使用简短的变量,而不必再次输入完整路径。

{{ $rel := .Release.Name }}
name: {{ $rel }}-config

先用 :=,再用 =

只有在首次声明变量时才使用冒号等号。要在同一作用域中稍后修改它的值,请使用普通等号重新赋值。

{{ $count := 1 }}
{{ $count = 3 }}

作用域随代码块而定

变量只存在于声明它的代码块中。在 if 或 range 之前定义变量后,它在该代码块内部都会保持可见。

超出作用域,无法访问

如果在 if 代码块内声明变量,代码块结束后它就会消失。在那个作用域之外,Helm 完全无法看到它。

清晰地命名变量

请选择简短且有描述性的名称,例如 $fullName 或 $port。清晰的变量名称能让团队成员更容易阅读模板。

变量与点号

进入代码块后点号可能会改变,但变量会保留捕获的值。这种稳定性正是变量如此有用的原因。

从表达式赋值

赋值的右侧可以是任何表达式,包括管道表达式。Helm 会运行它一次,并将结果保存到变量中。

{{ $port := .Values.port | default 8080 }}

快速检查

您之前已经在模板中写入了 {{ $svc := .Values.service.name }}。

回顾

现在您可以使用 := 声明变量,使用 = 重新赋值,通过美元符号读取变量,并遵守代码块作用域。整洁的模板即将到来!🎯

常见问题解答

「分配模板变量」课时是免费的吗?

是的 — 「分配模板变量」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 DevOps Bootcamp 课程的其余内容,请升级到 CoddyKit PRO。 DevOps Bootcamp 课程共包含 4 节课。

「分配模板变量」这节课中我会学到什么?

捕获值,以便在块中重复使用 你通过在浏览器中直接运行的动手代码来练习 DevOps Bootcamp,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 DevOps Bootcamp 需要有经验吗?

无需任何先前经验。CoddyKit 上的 DevOps Bootcamp 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。

「分配模板变量」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 DevOps Bootcamp 课中编写并运行代码吗?

能。每节 DevOps Bootcamp 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 分配模板变量
  2. 在 range 中保留根点作用域
  3. 实践中的 nindent 与 indent
  4. 调试渲染后的空白
← 返回 DevOps Bootcamp