0

我有 terragrunt 配置,其中已在根级别使用本地变量声明变量,如下所示。在子模块中,声明了名为 (terragrunt.hcl) 的子 terragrunt 配置文件。父 terragrunt 文件具有以下代码:

locals {
  location = "East US"
}

子模块 terragrunt 文件具有以下代码:

include {
  path = find_in_parent_folders()
}

locals {
  myvars = read_terragrunt_config(find_in_parent_folders("terragrunt.hcl"))
  location = local.myvars.locals.location
}

现在,尝试使用以下代码访问locationterraform 代码 () 中的变量:main.tf

 location = "${var.location}"

但它会引发错误:

Error: Reference to undeclared input variable

  on main.tf line 13, in resource "azurerm_resource_group" "example":
  13:   location = "${var.location}"

不知道如何访问 terraform 代码中 terragrunt 文件中定义的变量。请建议

4

1 回答 1

2

这个错误信息意味着你的根模块没有声明它期望被赋予一个location值,所以你不能引用它。

在您的根 Terraform 模块中,您可以通过使用块声明它来声明您期望此变量variable,如错误消息提示:

variable "location" {
  type = string
}

然后,此声明将使其有效地引用根模块中的其他位置,并且如果您在提供此变量的值的情况下var.location意外运行 Terraform,也会导致 Terraform 产生错误。location

于 2020-07-29T17:41:06.823 回答