проверка списка входных переменных в terraform - PullRequest
0 голосов
/ 25 февраля 2020

Этот блок проверки работает для одной входной переменной.

variable "mytestname" {

     validation {
        condition = length(regexall("test$", var.mytestname)) > 0
        error_message = "Should end in test"
     }
}

Мне нужно, чтобы он работал внутри for_each - или есть какой-то обходной путь для достижения sh этого. Проблема заключается в том, что существует ограничение на оператор условия - условие ДОЛЖНО принимать саму входную переменную (т. Е. Оно не может принимать значение each.value)

variable "mytestnames" {

listnames = split(",",var.mytestnames)     

for_each = var.listnames

     validation {
        condition = length(regexall("test$", each.value)) > 0
        error_message = "Should end in test"
      }
}

Приведенный выше фрагмент не работает. Мне нужен способ перебора списка значений и проверки каждого из них. Похоже, что недавно введенный «блок проверки» не работает со списками входных переменных. Должен быть способ сделать это без блока проверки ... ??

1 Ответ

0 голосов
/ 27 февраля 2020

Я верю, что это не сработает. Атрибутами, которые могут быть определены в блоке переменных, являются тип, описание и значение по умолчанию. Итак, как мы можем динамически определить дополнительный атрибут, такой как «список имен» ...

variable "mytestnames" {
    listnames = split(",",var.mytestnames)
}
$ terraform validate

Error: Unsupported argument

  on hoge.tf line 3, in variable "mytestnames":
   3: listnames = split(",",var.mytestnames)

An argument named "listnames" is not expected here.

...