terraform - 在适用于 AWS 的 Terraform 标签中组合变量值和显式定义的变量值
问题描述
目前,我正在研究使 AWS 资源的 Terraform 标签更加模块化。在这种情况下,将有一个标签“功能”对每个资源都是唯一的,其余要附加的标签将应用于所有资源。我要做的是将每个资源的唯一“功能”值与其他标签结合起来。
这是我到目前为止所得到的:
tags = {
Resource = "Example",
"${var.tags}
此标签值在variables.tf文件中定义为映射,如下所示:
variable "tags" {
type = map
description = "Tags for infrastructure resources."
}
并在tfvars文件中填充:
tags = {
"Product" = "Name",
"Application" = "App",
"Owner" = "Email"
}
但是,当我运行TF Plan时,出现错误:
Expected an attribute value, introduced by an equals sign ("=").
如何在 Terraform 中像这样组合变量?在此先感谢您的帮助。
解决方案
在进一步测试后想通了这一点。干得好:
tags = "${merge(var.tags,
map("Product", "Product Name",
"App", "${var.environment}")
)
}"
因此,重申一下:此代码将合并标签的映射变量(在我的情况下)适用于许多资源与每个基础设施资源唯一的标签(产品和应用程序)。希望这对将来的某人有所帮助。快乐的地球化改造。
推荐阅读
- vba - 使用可变最后一行在vba中按升序排序
- javascript - 计算两个时间之间的天差
- javascript - 在悬停时隐藏我的 div 但显示另一个 - HTML/CSS
- excel - 设置对 E 列中单元格的引用
- php - 无法访问数组以进行反序列化
- linkedin - LinkedinApi:通过 url 或姓名、姓氏获取人员数据
- ios - Auth.auth().currentUser?.uid = nil iOS Firebase
- c# - c#如何通过反射获取派生类属性列表,先按基类属性排序,再按派生类props
- javascript - 迭代一次并执行许多操作或为 JavaScript 中的每个操作迭代
- javascript - Elasticsearch v6.0.1 Nodejs 提升匹配数组元素之一