概述模块化可提升复用与可维护性, 版本治理通过语义化约束与锁定保证一致与可预测。结合模块输出与环境变量, 形成清晰的基础设施装配与演进流程。关键实践与参数版本约束: `required_version` 与 `provider` 版本锁定模块来源: Registry或Git源码, 使用 `version` 语义化锁定输出与依赖: 使用 `outputs` 传递跨模块信息升级策略: `init -upgrade` 与 `terraform.lock.hcl` 管理示例/配置/实现terraform { required_version = ">= 1.6, < 2.0" required_providers { aws = { source = "hashicorp/aws", version = "~> 5.40" } } } provider "aws" { region = "ap-southeast-1" } module "vpc" { source = "terraform-aws-modules/vpc/aws" version = "~> 5.0" name = "prod" cidr = "10.0.0.0/16" azs = ["ap-southeast-1a", "ap-southeast-1b"] } output "vpc_id" { value = module.vpc.vpc_id } terraform init -upgrade terraform plan -out tfplan terraform apply tfplan cat .terraform.lock.hcl 验证版本锁定: `lock.hcl` 中provider与模块版本被锁定, 复现一致升级安全: 在 `init -upgrade` 后仍满足约束且计划稳定依赖输出: 下游模块成功引用 `vpc_id` 等输出回滚能力: 版本不兼容时可按约束回退注意事项语义化版本约束需平衡升级便利与兼容风险模块来源需可信并审计更新记录变更需记录计划与审批流程, 保持合规在多环境下通过工作空间或目录结构管理差异

发表评论 取消回复