Fra*_*ise 9 terraform terraform-provider-aws
目前,我正在研究使 AWS 资源的 Terraform 标签更加模块化的要求。在这种情况下,每个资源都会有一个唯一的标签“功能”,而要附加的其余标签将适用于所有资源。我想做的是将独特的“功能”值与每个资源的其他标签结合起来。
这是我到目前为止所得到的:
tags = {
Resource = "Example",
"${var.tags}
Run Code Online (Sandbox Code Playgroud)
该标签值在变量.tf文件中定义为映射,如下所示:
variable "tags" {
type = map
description = "Tags for infrastructure resources."
}
Run Code Online (Sandbox Code Playgroud)
并在tfvars文件中填充:
tags = {
"Product" = "Name",
"Application" = "App",
"Owner" = "Email"
}
Run Code Online (Sandbox Code Playgroud)
但是,当我运行TF Plan时,出现错误:
Expected an attribute value, introduced by an equals sign ("=").
Run Code Online (Sandbox Code Playgroud)
在 Terraform 中如何组合变量?在此先感谢您的帮助。
小智 11
我尝试使用地图,它确实适用于新版本。下面的行对我有用:
tags = "${merge(var.resource_tags, {a="bb"})}"
Run Code Online (Sandbox Code Playgroud)
经过进一步测试后发现了这一点。干得好:
tags = "${merge(var.tags,
map("Product", "Product Name",
"App", "${var.environment}")
)
}"
Run Code Online (Sandbox Code Playgroud)
因此,重申一下:此代码将合并适用于许多资源的标签的映射变量(在我的例子中)与每个基础设施资源唯一的标签(产品和应用程序)。希望这对将来的人有帮助。快乐地球化。
| 归档时间: |
|
| 查看次数: |
17807 次 |
| 最近记录: |