Terraform - Условный оператор не может использоваться со значениями списка - PullRequest
0 голосов
/ 17 марта 2019

Я использую Terraform с AWS в качестве поставщика.

Я хочу использовать троичный оператор в локальной переменной моей зоны доступности.

Логика проста:

Если переменная существует - возьми ее. Если нет, используйте зоны доступности 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"
}

Генерирует следующую ошибку:

Условный оператор нельзя использовать со значениями списка.

Хотя это тихая простая операция, получается, как знакомая проблема .

Я следовал обходным путям в упомянутой теме, но они выглядели довольно сложно (использование функций compact split и join вместе).

Есть предложения по более простому решению?

Спасибо.

1 Ответ

1 голос
/ 18 марта 2019

вы близки к ответу.

Не уверен, как вы определяете переменную var.azs, я думаю, они определены как строки и связаны запятыми.

Так что вам нужно настроить код, присоединить список к строке.

locals {
  azs = "${length(var.azs) > 0 ? var.azs :  join(",", data.aws_availability_zones.available.names)}"
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...