Ошибка говорит о том, что значение по умолчанию не соответствует ограничению типа, о котором вы сообщили Terraform с помощью type = list(string)
. Это ограничение типа говорит о том, что это должен быть список строк, и по умолчанию он приходит от 0.11 с помощью инструмента 0.12upgrade
, который вы, возможно, использовали для получения этого результата, если у вас было type = list
ранее.
Вы можете измените ограничение типа на list(object)
. Если вы упростили свою структуру данных так, что у вас просто был список объектов с ключами cidr_block
и display_name
вместо списка объектов с ключом cidr_blocks
, который имеет список вышеупомянутых объектов, то вы могли бы даже go что касается более точной проверки:
variable "master_authorized_networks_config" {
type = list(object{
cidr_block = string
display_name = string
})
description = "The list of CIDR blocks of master authorized networks."
default = [
{
cidr_block = "XXXXXX/32"
display_name = "XXXXX"
},
# ...
]
}
Или, что гораздо проще, при предоставлении значения по умолчанию вы можете позволить Terraform автоматически выводить ожидаемый тип объекта, удаляя параметр type
из переменной. Затем, если кто-то попытается передать переменную, которая не соответствует типу по умолчанию, Terraform сообщит вам в план или во время проверки.