首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Terragrunt:读取上游变量

Terragrunt:读取上游变量
EN

Stack Overflow用户
提问于 2020-03-30 09:31:43
回答 1查看 158关注 0票数 2

我正在尝试建立我的AWS基础架构,并具有以下结构:

代码语言:javascript
复制
regions
└── us-east-2_Ohio
    ├── terragrunt.hcl
    ├── variables.tf
    └── vpcs
        ├── myVPC
            ├── terragrunt.hcl
            ├── variables.tf
            └── vpc.tf

us-east-2_Ohio级别的variables.tf中,我设置了provider和region:

代码语言:javascript
复制
provider "aws" {
  region = "us-east-2"
}

当我运行terragrunt plan-all时,vpc模块会提示provider.aws.region的myVPC模块。我希望它是从父模块传递过来的,但是无论我怎么尝试,它都不会起作用。它要么报告块类型不是预期的,要么报告目标模块尚未应用。我甚至在us-east-2_Ohio上创建了一个main.tf,它只有

代码语言:javascript
复制
output "provider_region" {
  value = "us-east-2a"
}

但这并不管用。

任何建议都将不胜感激。

谢谢

EN

回答 1

Stack Overflow用户

发布于 2020-03-31 03:04:16

当使用Terragrunt时,理想情况下,您应该坚持Terragrunt层次结构中的Terragrunt配置,并在单独的存储库中引用Terraform代码。有关这方面的示例,请参阅Terragrunt infrastructure-liveTerragrunt infrastructure-modules存储库。这些演示了一些概念,这些概念可能会帮助您更好地理解如何构建代码。

正如我在上面链接的存储库中所演示的,您将在regions.hcl文件中定义区域,如下所示:

代码语言:javascript
复制
locals {
  aws_region = "us-east-1"
}

在模块级terragrunt.hcl (示例中的myVPC模块)中,会有一个如下所示的块:

代码语言:javascript
复制
include {
  path = find_in_parent_folders()
}

这将包含aws_region变量并将其传递给Terraform模块,您可以在provider{}块中对其进行设置。

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

https://stackoverflow.com/questions/60922893

复制
相关文章

相似问题

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