Lui*_*uis 4 amazon-web-services terraform terraform-provider-aws
如何使用 Terraform12 将地图变量解析为资源值中的字符串?
我有这个变量:
variable "tags" {
type = map
default = {
deployment_tool = "Terraform"
code = "123"
}
}
Run Code Online (Sandbox Code Playgroud)
并且想要这个:{deployment_tool=Terraform, code=123}
我尝试了以下但没有成功:
resource "aws_ssm_parameter" "myparamstore" {
***
value = {
for tag in var.tags:
join(",",value, join("=",tag.key,tag.values))
}
}
Run Code Online (Sandbox Code Playgroud)
您请求的输出只是格式错误的 JSON 字符串。因此,您可以使用 将变量转换为 json jsonencode
,然后删除"
并更改:
为=
:
value = replace(replace(jsonencode(var.tags), "\"", ""), ":", "=")
Run Code Online (Sandbox Code Playgroud)
将“:”替换为“=”并不是一个完美的解决方案,只需考虑具有这样值的映射:https://example.com
- 变为https=//example.com
。这不好。
所以这是我的解决方案:
environment_variables = join(",", [for key, value in var.environment_variables : "${key}=${value}"])
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1679 次 |
最近记录: |