三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

Terraform 模块中的 count:批量创建、条件部署与版本陷阱全解析

Terraform 模块中的 count:批量创建、条件部署与版本陷阱全解析

从 Terraform 0.13 版本开始,count 元参数就可以用于模块(Module)了。它让你能从一个模块配置中创建多个实例,极大地提升了代码的灵活性。

为什么要在模块中用 count?

· 批量创建:需要部署多个环境副本(如为每个开发人员创建一个独立的沙箱)时,避免重复代码。

· 条件部署:最核心的用途之一。你可以用 count 有选择性地创建或跳过模块,非常适用于多环境部署(如只在生产环境启用特定服务)。

核心语法与示例

批量创建:创建3个AWS安全组

该示例批量创建了三个安全组,并使用 count.index 为其设置不同的名称和描述。

```terraform

variable "group_names" { 

  default = ["web", "app", "db"] 

}

module "security_group" {

  source = "./modules/aws_sg"

  count = length(var.group_names)

  # 通过 count.index 访问列表中的不同元素,为每个实例传入不同参数

  sg_name = var.group_names[count.index]

  sg_description = "Security group for ${var.group_names[count.index]} server"

}

← 返回列表