首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何访问terraform代码中的terragrunt变量

如何访问terraform代码中的terragrunt变量
EN

Stack Overflow用户
提问于 2020-07-29 11:43:03
回答 1查看 1.3K关注 0票数 0

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

代码语言:javascript
复制
locals {
  location = "East US"
}

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

代码语言:javascript
复制
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变量:

代码语言:javascript
复制
 location = "${var.location}"

但它会抛出错误:

代码语言:javascript
复制
Error: Reference to undeclared input variable

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

不了解如何访问terragrunt文件中定义的变量。请建议

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-29 17:41:06

此错误消息意味着您的根模块不声明它期望得到一个location值,因此您不能引用它。

在根Terraform模块中,您可以通过使用variable块声明该变量,正如错误消息提示的那样:

代码语言:javascript
复制
variable "location" {
  type = string
}

然后,这个声明将使引用根模块中其他地方的var.location有效,并且如果您不小心运行它而没有为这个location变量提供一个值,它也会导致Terraform产生一个错误。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63152841

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档