Когда переменные определены в terraform? - PullRequest
1 голос
/ 02 мая 2019

Terraform новичок здесь.У меня есть модуль с variables.tf, который создает ресурсную папку в Google Cloud.Переменные определены как:

variable "folder_name" {
    type = "string"
    description = "Name of the folder"
}

Вызывающая функция этого модуля - main.tf.

module "folder" {
    source = "../<path>/"
}

Когда я запускаю 'terraform init', выдается следующая ошибка -

$ terraform init
Initializing modules...
- module.folder
- module.project

Ошибка: модуль "папка": отсутствует обязательный аргумент "имя_папки"

Я думал, что переменные могут быть заранее определены в файле или включены в параметры командной строки при запуске 'terraform apply'.Я бы предпочел параметры CLI, но тогда почему я вижу ошибку аргумента на этапе инициализации?

1 Ответ

0 голосов
/ 02 мая 2019

Вы указываете значение каждой переменной модуля при вызове самого модуля:

module "folder" {
    source = "../<path>/"
    folder_name = "xyz"  # add this line to define the folder_name variable
}

Если вместо этого вы хотите указать folder_name в командной строке, вы можете создать переменную в вашем файле main.tf и указать это в командной строке:

variable "module_folder_name" {
  default = "xyz"
}

module "folder" {
   source = "../<path>/"
   folder_name = "${var.module_folder_name}"
}

И затем укажите значение этой переменной в командной строке:

terraform apply -var="module_folder_name=abc"
...