Terraform 如何在地形中实现动态匹配?

Terraform 如何在地形中实现动态匹配?,terraform,terraform-provider-aws,Terraform,Terraform Provider Aws,如何在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\

如何在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\u 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

来更改卷大小值。您在哪里定义环境?它是一个变量、工作区、git分支吗?