将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很高兴听到这个消息。如果你愿意,你可以回答你的问题。或者,如果我的回答有帮助的话,我们将不胜感激。