0Pricing
DevOps Bootcamp · 课时

变量与输出

学习使用输入变量使配置更加灵活且可复用,并使用输出值提取已部署基础设施的重要信息。

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

灵活的配置

Terraform 允许您以代码形式定义基础设施。但是,如果您想在不同环境或设置中复用代码,该怎么办呢?

这时就需要使用变量和输出。它们能让配置更加灵活且易于管理。

输入变量:灵活性

输入变量充当 Terraform 配置的参数。您可以使用它们自定义基础设施的某些方面,而无需修改核心代码。

  • 避免直接在配置中写死值。
  • 让模块和配置可以重复使用。
  • 允许不同环境使用不同的值(例如开发环境和生产环境)。

声明变量

您可以在 .tf 文件中声明输入变量,该文件通常命名为 variables.tf。每个变量都需要一个唯一名称。

下面是一个基本声明:

variable "file_content" {
  description = "Content to write to a local file."
  type        = string
}

类型和默认值

变量可以使用不同的类型,例如 string、number、bool、list 或 map。您还可以提供默认值,使变量成为可选项。

variable "environment" {
  description = "The deployment environment (e.g., dev, prod)."
  type        = string
  default     = "dev"
}

variable "instance_count" {
  description = "Number of instances."
  type        = number
  default     = 1
}

在代码中使用变量

声明变量后,您可以使用 var. 前缀加变量名称来引用变量的值(例如 var.environment)。

这样,资源就能根据提供的输入进行调整。

resource "local_file" "example" {
  content  = "Hello from ${var.environment}!"
  filename = "example-${var.environment}.txt"
}

提供值的方法

有多种方式可以为变量提供值:

  • 命令行:在 terraform plan 或 apply 中使用 -var="key=value"。
  • .tfvars 文件:创建一个类似 terraform.tfvars 或 dev.tfvars 的文件。
  • 环境变量:使用 TF_VAR_name=value。

terraform.tfvars 文件常用于设置值:

# terraform.tfvars
environment = "staging"
file_content = "This is some custom content."

输出值:提取信息

正如输入变量允许您将数据传入配置一样,输出值允许您从配置中提取数据。

  • 显示有关已部署资源的重要信息(例如 IP 地址、URL)。
  • 在不同 Terraform 配置之间传递数据,尤其是在使用模块时。
  • 便于查看 Terraform 已预配的内容。

声明输出值

您可以在 .tf 文件中声明输出值,该文件通常命名为 outputs.tf。每个输出值都需要一个唯一名称和一个 value 参数。

output "file_name" {
  description = "The name of the generated local file."
  value       = local_file.example.filename
}

查看输出值

运行 terraform apply 后,您可以使用 terraform output 命令查看输出值。

value 参数通常引用资源的某个属性,例如 resource_type.resource_name.attribute。

# After 'terraform apply', run:
terraform output file_name

变量与输出值实战

让我们综合运用目前学到的内容。此示例使用变量指定内容和环境,并输出文件名与内容。请在一个目录中创建以下三个文件:

# main.tf
terraform {
  required_providers {
    local = {
      source = "hashicorp/local"
      version = "~> 2.1"
    }
  }
}

resource "local_file" "message" {
  content  = var.greeting_message
  filename = "hello_${var.env}.txt"
}

# variables.tf
variable "greeting_message" {
  description = "The message content for the file."
  type        = string
  default     = "Hello CoddyKit!"
}

variable "env" {
  description = "Environment name."
  type        = string
  default     = "dev"
}

# outputs.tf
output "generated_filename" {
  description = "The full path of the generated file."
  value       = local_file.message.filename
}

output "file_content_used" {
  description = "The content actually written to the file."
  value       = local_file.message.content
}

快速检查:变量与输出值

以下关于 Terraform 变量和输出值的说法哪些是 TRUE?

回顾:变量与输出值

做得很好!您已经学会了如何让 Terraform 配置变得动态:

  • 输入变量允许您为基础设施定义参数。
  • 您可以通过 CLI、.tfvars 文件或环境变量提供变量值。
  • 输出值帮助您提取并显示已部署资源的重要信息。

接下来,您将深入了解 Terraform 如何通过状态管理跟踪您的基础设施!

常见问题解答

「变量与输出」课时是免费的吗?

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

「变量与输出」这节课中我会学到什么?

学习使用输入变量使配置更加灵活且可复用,并使用输出值提取已部署基础设施的重要信息。 你通过在浏览器中直接运行的动手代码来练习 DevOps Bootcamp,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 DevOps Bootcamp 需要有经验吗?

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

「变量与输出」课时需要多长时间?

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

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

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

此课程中的所有课时

  1. 提供商与资源
  2. 变量与输出
  3. 状态管理基础
  4. 模块与代码复用
← 返回 DevOps Bootcamp