我正在尝试构建一个模块,该模块必须根据条件生成一个具有不同值的文件,该条件一旦生成,便会在另一个模块中使用。
一个例子如下:
如果myVar = x,则使用变量集'a';否则,如果myVar = y,则使用变量集'b';否则,如果myVar = z,则使用变量集'c'。
我已经尝试做以下类似的事情,但是没有运气。
data "ignition_file" "instance" {
path = "/instance.env"
count = "${var.myVar}"
content {
content = "${data.template_file.instance.rendered}"
}
}
此外,我尝试使用:
count = "${var.myVar == "a" ? 1 : 0}"
但也没有运气。
我在此https://blog.gruntwork.io/terraform-tips-tricks-loops-if-statements-and-gotchas-f739bbae55f9上浏览,示例如下:
data "template_file" "user_data_shell" {
count = "${var.use_shell_script_user_data}"
template = <<-EOF
#!/bin/bash
run-microservice.sh
EOF
}
data "template_file" "user_data_cloud" {
count = "${1 - var.use_shell_script_user_data}"
template = <<-EOF
#cloud-config
runcmd:
- run-microservice.sh
EOF
}
但是,这将导致具有3个输出,这将使我很难将其传递给其他模块。
是否可以使用Terraform 0.11来实现这一目标?