Terraform 映射到字符串值

Terraform map to string value

如何使用 Terraform12 将映射变量解析为资源值中的字符串?

我有这个变量:

variable "tags" {
  type                = map
  default = {
    deployment_tool   = "Terraform"
    code              = "123"
  }
}

并想要这个:{deployment_tool=Terraform,代码=123}

我尝试了以下方法但没有成功:

resource "aws_ssm_parameter" "myparamstore" {
  ***
  value = {
    for tag in var.tags:
      join(",",value, join("=",tag.key,tag.values))
  }
}

您请求的输出只是格式错误的 JSON 字符串。因此,您可以使用 jsonencode 将变量转换为 json,然后删除 " 并将 : 更改为 =:

value = replace(replace(jsonencode(var.tags), "\"", ""), ":", "=")

将“:”替换为“=”并不是一个完美的解决方案,只需考虑具有这样一个值的映射:https://example.com - 它变成了https=//example.com。这样不好。
所以这是我的解决方案:

environment_variables = join(",", [for key, value in var.environment_variables : "${key}=${value}"])