Terraform-条件运算符不能与列表值一起使用

时间:2019-03-17 13:52:48

标签: amazon-web-services terraform

我将Terraform与AWS用作提供程序。

我想在可用区局部变量中使用ternary operator

逻辑很简单:

如果存在变量,请接受。 如果不是,请使用可用区data

以下代码:

data "aws_availability_zones" "available" {}

locals {
  azs  = "${length(var.azs) > 0 ? var.azs :  data.aws_availability_zones.available.names}"
}


variable "azs" {
  description = "A list of Availability zones in the region"
  default     = []
  type        = "list"
}

产生以下错误:

  

条件运算符不能与列表值一起使用。

尽管它很安静,但操作很简单,但结果却像familiar issue

我遵循了上述线程中的变通方法,但是它们看上去很安静(将compact splitjoin函数一起使用)。

对于更简单的解决方案有什么建议吗?

谢谢。

1 个答案:

答案 0 :(得分:1)

您已接近答案。

不确定如何定义变量var.azs,我想它们已定义为字符串并以逗号连接。

因此,您需要调整代码join到字符串的列表。

locals {
  azs = "${length(var.azs) > 0 ? var.azs :  join(",", data.aws_availability_zones.available.names)}"
}