这里是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
错误:模块“文件夹”:缺少必需的参数“ folder_name”
我认为变量可以在运行“ terrain apply”时在文件中预先确定或包含在命令行选项中。我希望使用CLI选项,但是为什么在'init'阶段会看到参数错误?
答案 0 :(得分:0)
在调用模块本身时,请提供每个模块变量的值:
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"