全书目录

第四十九篇:Terraform 完全指南 —— 基础设施蓝图总工局宇宙

第七章:Module —— 大城市不能每次都重画整套小区图纸

1 分钟 199 字 第 916 / 962 个阅读单元

当项目大起来后,你不可能每个环境都手写一遍:

  • VPC
  • 子网
  • NAT
  • 路由表
  • 安全组
  • 数据库
  • 应用机器
  • 日志系统

这时候就要用 module

模块的本质可以理解成:

可复用的小区蓝图模板。

比如你可以有这些模块:

text
modules/
├── network/
├── eks-cluster/
├── postgres/
├── app-service/
└── observability/

然后在主工程里调用:

hcl
module "network" {
  source = "./modules/network"

  project_name = "software-city"
  cidr_block   = "10.0.0.0/16"
}

module "app_service" {
  source = "./modules/app-service"

  name      = "article-api"
  subnet_id = module.network.private_subnet_id
}

模块的意义不是“高级语法”。

它真正解决的是:

不要每次都重新画同一套小区图。

在城市比喻里:

  • resource 是单栋建筑
  • module 是一整片标准住宅区蓝图