Пример : В Azure я развертываю несколько групп ресурсов, управляемые диски, сетевые интерфейсы и т. Д. c, все в одном регионе.
Я хочу объявить примитив «регион» («константу»), на который будут ссылаться все эти ресурсы. Что из этого соответствует соглашению?
a) variables.tf:
variable "region" {
type = string
default = "a-place"
}
b) locals.tf
locals {
region = "a-place"
}
Естественно, я бы предпочел объявить это как местный. Я бы использовал переменную только в том случае, если я ожидаю, что значение придет (или будет переопределено) из переменных среды, командной строки или если я создавал модуль. Однако я не видел, чтобы local использовался для «объявления констант» ни в одном из примеров, что заставляет меня думать, что существует соглашение об использовании локальных переменных с очень ограниченной областью действия (например, в основном для создания структур, которые могут быть использованы с count
и for_each
конструкций).
Прикрытие спины до того, как кто-то пометит это как основанное на мнении: я спрашиваю, что такое соглашение, а не ваше мнение, что соглашение должно быть.
-up вопрос: Был бы ответ иначе, если бы этот пример касался IP-адресов, префиксов имен ресурсов и т. д. c. вместо региона? (распространяется ли соглашение только на определенные поля?)