Эта ошибка говорит о том, что этот аргумент values
ожидает набор строк, но, очевидно, элементы var.path_to_service
не относятся к этому типу.
Вы не поделились определением variable "path_to_service"
, но для того, чтобы он работал с этой конфигурацией в том виде, в котором он написан, его необходимо объявить примерно так:
variable "path_to_service" {
type = list(set(string))
}
... и значение, назначенное ему вызывающим модулем, должно быть вложено так:
path_to_service = [
["a", "b"],
["c"],
]
Поскольку ваша переменная имеет единственное имя, я думаю, что более вероятно, что это список отдельных строк, по одной на «службу»:
variable "path_to_service" {
type = list(string)
}
path_to_service = [
"a",
"b",
"c",
]
Если это так, то вам нужно заключить эти отдельные строки в набор из одного элемента, заключив выражение в скобки [ ]
:
values = [index(var.path_to_service, count.index)]
Пока вы обновляете это для В любом случае, Terraform 0.12, вы также можете переключиться на новый синтаксис индексации списка, который должен достичь того же результата:
values = [var.path_to_service[count.index]]
Добавление этих скобок списка со значениями примера переменных, которые я привел выше, приведет к появлению Terra Форма, чтобы понять это, как если бы вы написали следующее, используя «a» в качестве примера:
condition {
host_header {
values = ["a"]
}
}
..., который, кажется, соответствует типу, ожидаемому этим аргументом values
.