我有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
}现在,尝试使用以下代码访问terraform代码(main.tf)中的location变量:
location = "${var.location}"但它会抛出错误:
Error: Reference to undeclared input variable
on main.tf line 13, in resource "azurerm_resource_group" "example":
13: location = "${var.location}"不了解如何访问terragrunt文件中定义的变量。请建议
发布于 2020-07-29 17:41:06
此错误消息意味着您的根模块不声明它期望得到一个location值,因此您不能引用它。
在根Terraform模块中,您可以通过使用variable块声明该变量,正如错误消息提示的那样:
variable "location" {
type = string
}然后,这个声明将使引用根模块中其他地方的var.location有效,并且如果您不小心运行它而没有为这个location变量提供一个值,它也会导致Terraform产生一个错误。
https://stackoverflow.com/questions/63152841
复制相似问题