Terraform Module 是什麼?如何設計可重用的模組?
Terraform Module
Module 是封裝一組相關 Terraform 資源的容器,讓你能夠重複使用同一套設定。
根模組(Root Module):直接執行的 .tf 檔案所在目錄
子模組(Child Module):被其他模組呼叫的模組,可來自本地目錄、Git 儲存庫或 Terraform Registry
模組使用範例
呼叫一個 VPC 模組:
module "vpc" { source = "terraform-aws-modules/vpc/aws" version = "5.0.0"
name = "my-vpc" cidr = "10.0.0.0/16"
azs = ["us-east-1a", "us-east-1b"] private_subnets = ["10.0.1.0/24", "10.0.2.0/24"] public_subnets = ["10.0.101.0/24", "10.0.102.0/24"]
enable_nat_gateway = true }
模組設計原則
單一職責:每個模組只管理一個邏輯資源單元(如 VPC、EKS cluster、RDS)
合適的抽象層級:暴露必要的 variables,隱藏實作細節
輸入驗證:使用 validation 區塊驗證輸入值
variable "environment" { type = string validation { condition = contains(["dev", "staging", "prod"], var.environment) error_message = "environment must be dev, staging, or prod" } }
輸出值(Outputs):暴露其他模組需要的值(如 VPC ID、Subnet IDs)
模組版本控制
在生產環境中,始終固定模組版本號(version = "x.y.z"),避免意外引入上游破壞性變更。
✦ AI 模擬面試
輸入你的答案,AI 即時分析精準度與改進空間
登入後即可使用 AI 評分
