0Pricing
DevOps Bootcamp · 课时

模块与代码复用

了解 Terraform 模块如何封装可复用基础设施、接收输入、公开输出,并让配置保持 DRY 且易于维护。

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

为什么需要模块

在不同环境中重复复制相同的资源会导致偏差和错误。模块是一个可复用、参数化的 Terraform 资源容器,您可以使用不同的输入多次调用它,同时让代码保持 DRY。

每个配置都是一个模块

您运行 terraform apply 的目录就是根模块。它调用的模块是子模块。因此,您已经在使用模块,只是在继续添加更多模块。

模块结构

模块其实就是一个包含 .tf 文件的文件夹,通常包括:

  • main.tf —— 资源。
  • variables.tf —— 输入变量。
  • outputs.tf —— 对外公开的值。

定义输入

输入以模块内部变量的形式声明,使调用方可以自定义行为。

variable "bucket_name" {
  type = string
}
variable "versioning" {
  type    = bool
  default = false
}

使用输入

模块中的资源会引用其变量。

resource "aws_s3_bucket" "this" {
  bucket = var.bucket_name
}

公开输出

输出会向调用方返回有用的值,例如 ID 或 ARN。

output "bucket_arn" {
  value = aws_s3_bucket.this.arn
}

调用模块

根模块通过 module 块调用子模块,并传入输入。

module "logs" {
  source     = "./modules/bucket"
  bucket_name = "app-logs"
  versioning  = true
}

引用模块输出

您可以在配置的其他位置通过 module.NAME.OUTPUT 访问模块的输出。

resource "aws_s3_bucket_policy" "p" {
  bucket = module.logs.bucket_arn
}

模块来源

source 可以是本地路径、Git URL 或公共 Terraform Registry。

module "vpc" {
  source  = "terraform-aws-modules/vpc/aws"
  version = "5.0.0"
}

模块版本管理

请始终为注册表模块固定 version,以便有意地进行升级。添加或更改模块后运行 terraform init,以下载这些模块。

设计优秀的模块

让模块保持专注(只负责一个逻辑组件),只公开所需的输入,记录输出,并避免将特定环境的值硬编码。小型、可组合的模块胜过一个庞大的模块。

快速检查

测试您对模块的理解。

回顾

模块让 Terraform 具备可复用性并遵循 DRY 原则。

  • 模块是一个包含 .tf 文件、变量(输入)和输出的文件夹。
  • 使用 module 块和 source 调用模块;通过 module.NAME.OUTPUT 访问结果。
  • 来源可以是本地路径、Git 或注册表;固定 version,并运行 init。
  • 设计小型、专注且文档完善的模块。

常见问题解答

「模块与代码复用」课时是免费的吗?

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

「模块与代码复用」这节课中我会学到什么?

了解 Terraform 模块如何封装可复用基础设施、接收输入、公开输出,并让配置保持 DRY 且易于维护。 你通过在浏览器中直接运行的动手代码来练习 DevOps Bootcamp,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 DevOps Bootcamp 需要有经验吗?

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

「模块与代码复用」课时需要多长时间?

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

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

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

此课程中的所有课时

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