将terraform hcl变量创建为地图

将terraform hcl变量创建为地图,terraform,Terraform,我正在使用tfeprovider开发terraform workspace automation,并希望使用下面的数据结构中的custom_标记创建terraform HCL变量作为映射 workspaces = { "PROD" = { "custom_tags" = { "Application" = "demo" "EnvironmentType" = &

我正在使用
tfe
provider开发terraform workspace automation,并希望使用下面的数据结构中的
custom_标记创建terraform HCL变量作为映射

workspaces = {
  "PROD" = {
    "custom_tags" = {
      "Application" = "demo"
      "EnvironmentType" = "prod"
      "NamePrefix" = "sof"
      "ProductType" = "terraform"
    }
    "env_variables" = {}
    "id" = "alfsdfksf"
    "name" = "PROD"
    "repo" = "github/something"
    "tf_variables" = {}
  }
  "UAT" = {
    "custom_tags" = {
      "Application" = "demo"
      "EnvironmentType" = "uat"
      "NamePrefix" = "sof"
      "ProductType" = "terraform"
    }
    "env_variables" = {}
    "id" = "ws-k7KWYfsdfsdf"
    "name" = "UAT"
    "repo" = "github/otherthing"
    "tf_variables" = {}
  }
}
这是我的资源块

resource "tfe_variable" "terraform_hcl_variables" {
  for_each     = { for w in local.workspaces : w.name => w }
  key          = "custom_tags"
  value        = each.value.custom_tags
  category     = "terraform"
  hcl          = true
  sensitive    = false
  workspace_id = tfe_workspace.main[each.key].id
}
我得到了这个错误。感谢您的帮助以解决此问题

**each.value.custom_tags is object with 4 attributes
Inappropriate value for attribute "value": string required.**
预期结果

自定义_标记应创建为HCL变量

custom_tags = 
{
   "Application" = "demo"
   "EnvironmentType" = "prod"
   "NamePrefix" = "sof"
   "ProductType" = "terraform"
}

很遗憾,你不能这样做<代码>值
属性必须是字符串,但您正在尝试为其分配“具有4个属性的对象”


您可以使用将
每个.value.custom_标记转换为字符串,但这可能不是您想要的。

遗憾的是,您不能这样做<代码>值
属性必须是字符串,但您正在尝试为其分配“具有4个属性的对象”


您可以使用将
each.value.custom_标记
转换为字符串,但这可能不是您想要的。

谢谢您的反馈。@doubledecker没问题。你把这个问题解决了吗?我把所有的自定义标签(应用程序、环境、名称前缀、产品类型)都添加到了工作区中。并使用类似这样的
each.value.application
使用值,并将赋值作为单个字符串。非常基本,多余,但它对我有用。这是来自资源块
value=“{\n\'EnvironmentType\”=\“${each.value.environment}\”\n\'Application\=\“${each.value.Application}\”\n\'ProductType\=\“${var.Application}\”\n\'nameffix\=\“${var.name\u prefix}\”\n}”
@doubledecker很高兴听到这个消息。如果你愿意,你可以回答你的问题。或者,如果我的回答有帮助,我们将不胜感激。谢谢你的反馈。@doubledecker没问题。你把这个问题解决了吗?我把所有的自定义标签(应用程序、环境、名称前缀、产品类型)都添加到了工作区中。并使用类似这样的
each.value.application
使用值,并将赋值作为单个字符串。非常基本,多余,但它对我有用。这是来自资源块
value=“{\n\'EnvironmentType\”=\“${each.value.environment}\”\n\'Application\=\“${each.value.Application}\”\n\'ProductType\=\“${var.Application}\”\n\'nameffix\=\“${var.name\u prefix}\”\n}”
@doubledecker很高兴听到这个消息。如果你愿意,你可以回答你的问题。或者,如果我的回答有帮助的话,我们将不胜感激。