Terraform 模块变量作为一个文件

Terraform 模块变量作为一个文件,terraform,Terraform,我有一个地形模块,如下所示 module "newserver" { source = "./newserver" // passing the variables here } 我可以在下面的命令中将变量作为文件传递,而不是在那里传递变量吗 terraform apply-var file=“/path/variables.tfvars” 当我这样做时,我会遇到一些错误,比如缺少必需的参数,我在这里缺少什么,对此的任何帮助都将不胜感激。您的模

我有一个
地形模块
,如下所示

module "newserver" {
  source = "./newserver"

  // passing the variables here
}
我可以在下面的命令中将变量作为文件传递,而不是在那里传递变量吗
terraform apply-var file=“/path/variables.tfvars”

当我这样做时,我会遇到一些错误,比如
缺少必需的参数
,我在这里缺少什么,对此的任何帮助都将不胜感激。

您的模块中定义了变量,其中包含
变量
块,例如

variable "example_var" {}
实例化模块时,需要将所需变量传递到模块中。如果要在实例化模块时将变量传递到模块中,还必须定义这些变量

module "newserver" {
  source = "./newserver"

  example_var = var.example_var
}

variable "example_var" {}

Terraform的作用域是这样的,即变量在模块内的作用域,如果您实例化模块并希望将变量传递到模块中,则必须创建一个新变量

您可以尝试从命令行传递变量文件,但此模块需要一个变量(来自模块导入代码中的问题和注释),因此,请传递从
variables.tfvars
文件中获取的值。@JBone抱歉,我不明白您的意思,请给出任何示例。您必须在模块内以类似或等效的声明再次声明变量,然后将变量的输入分配给根模块变量输入的值。如果您发现自己必须经常这样做,那么您可能应该重新构建最佳实践。
变量。该模块的tf
中包含变量,在
main.tf
中,我正在调用该模块,因此在该模块中,我需要再次调用它?模块内部的
变量.tf
范围是模块。这些将成为模块的输入如果您实例化模块并希望使用变量作为输入,那么在实例化模块的范围内需要新变量