#terraform
#terraform
Вопрос:
Есть ли способ заставить функцию диапазона terraform начинаться с 1 вместо 0 или любой другой функции или способа для достижения конечного результата.
Допустим, у меня есть код, как показано ниже.
variable "nodes" {
default = 1
}
locals {
node_range = range(var.nodes)
}
Это возвращает следующий результат.
[
0
]
Я хотел бы иметь возможность получать выходные данные, как показано ниже (псевдокод)
[
1
]
Причина, по которой я хотел бы, чтобы это было так, заключается в том, что мы не можем использовать count.index 1 в for_each ресурсах. Следовательно, если я получу список из функции диапазона, которая начинается с 1, то я могу просто использовать его в других местах.
У меня есть теги имен, которые должны начинаться с myec2instance01, myec2instance02 .. и т.д. Но если мы получим диапазон, начинающийся с 0, тогда мы получим нумерацию тега с 00 (myec2instance00).
Любой другой способ достижения конечного результата также принимается в качестве допустимого решения.
Ответ №1:
Первым аргументом для диапазона является start
. Таким образом, вы могли бы сделать следующее, например:
variable "nodes" {
default = 5
}
locals {
node_range = range(1, var.nodes 1)
}
output "out" {
value = local.node_range
}
что дает:
out = [
1,
2,
3,
4,
5,
]
Ответ №2:
locals {
node_range = range(1, var.nodes 1)
}