Функция Terraform Range для начала с 1 вместо 0

#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)
}