如何在terraform中实现动态匹配?

how to implement dynamic matching in terraform?

如何将 terraform 中的 if 语句写入 运行 以下块,根据将在变量中指定的环境使用不同的值。

root_block_device {
    volume_type = "gp2"
    volume_size = "30"
  }

  ebs_block_device = {
    device_name = "dfgh"
    volume_type = "gp2"
    volume_size = "5"
    encrypted = true
  }

例如,如果我希望 volume_size 参数在测试环境中为 30,在生产环境中为 50?

您不能真正在 Terraform 中使用 if 语句,因为它是一种声明性语言。

不过,有一种解决方法可以实现您的目标。

...

  root_block_device {
    volume_type = "gp2"
    volume_size = "${lookup(var.volume_sizes, var.env)}"
  }

...

variable "env" {
  default = "test"
}

variable "volume_sizes" {
  default = {
    "test" = "30"
    "production" = "50"
  }
}

然后您可以通过将 env 变量从 test 修改为 production 来更改卷大小值。