Кажется, здесь есть несколько вопросов, но это не обязательно прямой вопрос, поэтому я постараюсь рассмотреть каждый из них. Обратите внимание, что вам НЕ НУЖНО исправлять предупреждения, только ошибки, хотя рекомендуется исправлять оба.
Предупреждение: выражения только для интерполяции устарели
В более новых версиях terraform атрибуты ресурса должны передаваться напрямую, а не упаковывать их в интерполяции.
То же самое можно сделать
resource "my_resource" "name" {
some_attr = var.some_value
}
вместо
resource "my_resource" "name" {
some_attr = "${var.some_value}"
}
, если для построения фактически не требуется интерполяция строк строка из других значений.
Предупреждение. Ограничения цитируемых типов устарели
в .terraform / modules / vnet -main / Azure -terraform-azurerm- vnet -e0b9155 / variables.tf строка 39, в переменной "nsg_ids": 39: type = "map"
Похоже, что модуль, от которого вы зависите, не совместим с версия терраформы, которую вы используете (по крайней мере, с точки зрения «Предупреждение»).
Эта жалоба c обусловлена тем, что она использует кавычки вокруг типа map
(например, "map"
, а не просто *) 1027 *). Это видно из источника модуля .
Единственный реальный вариант здесь - это разветвить модуль и исправить предупреждения / обновить или открыть PR и надеяться, что сопровождающие сливаются (хотя это выглядит вроде того, что репо не было активности в течение 2 лет).
Ошибка: «функции»: обязательное поле не установлено
Это реальное ошибка, я думаю, вы, вероятно, хотите исправить. Ответ прост: ваш провайдер пропускает требуемый требуемый features
блок (может даже быть пустым).
Таким образом, использование следующего должно исправить эту ошибку
provider "azurerm" {
features {}
}
Ошибка: синтаксическая ошибка в файле конфигурации
в строке main.tf 6, в переменной "resource_group_name": 6: type = string
Ошибка при синтаксическом анализе: в 6:11 : Неизвестный токен: 6:11 строка IDENT
Я полагаю, что проблема заключается в том, что команда обновления ожидает, что терраформа, которая обновляется, будет действительным 0.11
кодом. А в 0.11
поля type
должны иметь значения string
(например, "map"
, "string"
, et c ...).