如何用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?
答案 0 :(得分:1)
您不能真正在Terraform中使用if语句,因为它是一种声明性语言。
但是,有一种变通方法可以实现您想要的目标。
$count = pattern('\[tag]\b', 'i')->match('[tag] [tag]')->count();
$count // 2
然后可以通过将...
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
来更改卷大小值。