You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用YAML锚点为Terraform的Azure资源组复用标签?

解决Terraform中YAML锚点标签合并报错问题

你遇到的Call to function "yamldecode" failed错误,是因为YAML语法使用错误——直接在字典中放置锚点引用*commontags不符合YAML规范,字典条目必须是键值对形式。要合并锚点中的字典内容,需要使用YAML的合并键<<。

修正后的YAML代码

commontags: &commontags
  Tag1: value1      
  Tag2: value2
  Tag3: value3
  Tag4: value4

tags:
  Tag5: value5
  Tag6: value6 
  <<: *commontags

<<: *commontags会将锚点commontags中的所有键值对合并到tags字典中,最终tags会包含Tag1-Tag6的所有标签。

替代方案:用Terraform本地值+merge函数

如果不想依赖YAML锚点,也可以直接在Terraform代码中定义通用标签,通过merge函数合并,更直观且不易出错:

locals {
  common_tags = {
    Tag1 = "value1"
    Tag2 = "value2"
    Tag3 = "value3"
    Tag4 = "value4"
  }
}

resource "azurerm_resource_group" "example" {
  name     = "example-rg"
  location = "East US"

  tags = merge(local.common_tags, {
    Tag5 = "value5"
    Tag6 = "value6"
  })
}

内容的提问来源于stack exchange,提问作者ByteCruncher

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 14:44:56