Основываясь на данных требованиях, я думаю, что самым простым решением было бы установить значение по умолчанию для переменной []
и вообще избежать необходимости в условных выражениях:
variable "additional_security_group_ids" {
type = list(string)
default = []
}
locals {
security_group_ids = concat(
[data.aws_security_group.default.id],
var.additional_security_group_ids,
)
}
Объединение пустого списка просто создает тот же список, поэтому, если оставить переменную неустановленной в приведенном выше списке, local.security_group_ids
будет содержать только идентификатор группы безопасности по умолчанию.
Установка значения по умолчанию null
полезна, когда отсутствие значения для эта переменная полностью отключает какую-либо функцию, или, если нужная вам логика c не может быть удобно выражена через значения по умолчанию, но я всегда рекомендую по возможности указывать значения c по умолчанию, поскольку результат будет легче читать и понять для будущих сопровождающих.