amazon-web-services - 在 terragrunt 配置中使用变量
问题描述
我们可以在 terragrunt 配置中使用 terraform 变量吗?
下面是我的 terragrunt 配置。
#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 模块中定义。
#root.yaml
bucket_name: "s3-bucket"
key: "foo"
这不起作用,terragrunt 抱怨未定义变量。如果不创建用于 terragrunt 的新变量,我们不能在 terragrunt 配置中使用 terraform 变量吗?
解决方案
Terragrunt 在 hcl 级别上没有变量,但它允许您使用可以从文件中读取的本地变量:
#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
}
}
# config.hcl:
locals {
bucket_name = "s3-bucket"
key = "foo"
}
推荐阅读
- android - 当我打开 Google 地图活动时,当前位置未首次显示
- python - 在 python 中解压 .gz 文件时出错
- mysql - Laravel hasOneThrough 或者通过中间表获取关系
- list - Flutter:我如何在列表中实现列表?错误:在 initializers.dart(implicit_this_reference_in_initializer) 中只能访问静态成员
- r - 闪亮:在空/未选择的radioButtions()的情况下,actionButton()可以返回错误吗?
- c# - 如何检查 JsonPath 中的多个键
- python - Scrapy - 一次运行多个蜘蛛 - CrawlerProcess - 文件结构
- docker - docker容器中的xcodebuild
- javascript - 在执行下一个操作之前等待循环完成
- java - 在 Firebase 实时数据库中,我如何遍历每个产品并在回收站视图中显示它们的详细信息