首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在terragrunt配置中使用变量

在terragrunt配置中使用变量
EN

Stack Overflow用户
提问于 2021-03-03 10:56:00
回答 4查看 276关注 0票数 0

我们可以在terragrunt config中使用terraform变量吗?

下面是我的terragrunt配置。

代码语言:javascript
复制
#terragrunt.hcl

remote_state {
  backend = "s3"
  generate = {
    path      = "remote_state.tf"
    if_exists = "overwrite_terragrunt"
  }
  # Terragrunt built-in function:
  # sets key relative to the modules
  config = {
    bucket         = ${var.bucket_name}
    key            = ${var.key}
    encrypt        = true
  }
}

在root.yaml文件中,我传递了变量bucket_name和key的输入值。这些变量在terraform模块中定义。

代码语言:javascript
复制
#root.yaml
bucket_name: "s3-bucket"
key:    "foo"

这是不起作用的,terragrunt正在抱怨变量没有定义。如果不创建一个新的变量用于terragrunt,我们就不能在terragrunt config中使用terraform变量吗?

EN

回答 4

Stack Overflow用户

发布于 2021-03-03 23:14:05

Terragrunt没有hcl级别的变量,但它允许您使用可从文件中读取的本地变量:

代码语言:javascript
复制
#terragrunt.hcl
locals {
  config_vars    = read_terragrunt_config("config.hcl")
}

remote_state {
  backend = "s3"
  generate = {
    path      = "remote_state.tf"
    if_exists = "overwrite_terragrunt"
  }
  # Terragrunt built-in function:
  # sets key relative to the modules
  config = {
    bucket         = "${local.config_vars.locals.bucket_name}"
    key            = "${local.config_vars.locals.key}"
    encrypt        = true
  }
}
代码语言:javascript
复制
# config.hcl:
locals {
    bucket_name = "s3-bucket"
    key         = "foo"
}
票数 1
EN

Stack Overflow用户

发布于 2021-04-17 00:16:20

您可以使用env声明terraform vars:

代码语言:javascript
复制
export TF_VAR_bucket_name=mybucket

和terragrunt配置:

代码语言:javascript
复制
config = {
  bucket = get_env("TF_VAR_bucket_name", "otherbucket")
}
票数 0
EN

Stack Overflow用户

发布于 2021-12-30 15:30:00

如果你想继续使用yaml作为你的配置源,你可以在本地解码它

代码语言:javascript
复制
locals {
 vars        = yamldecode(file(("root.yaml"))
 bucket_name = local.vars.bucket_name
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66450126

复制
相关文章

相似问题

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