如何用HCL将Terraform数组转为external-dns所需字符串格式?
Terraform 列表转external-dns要求的字符串格式实现
针对你的需求,在Terraform v1.3.7中可以通过字符串插值结合join函数快速实现格式转换,具体步骤如下:
- 定义变量(若未定义):
variable "r53_zone_names" { type = list(string) default = [ "google.com.", "example.com.", ] }
- 使用局部值生成目标格式字符串:
locals { external_dns_zone_filter = "{${join(",", var.r53_zone_names)}}" }
- 验证结果(可选):
output "formatted_zone_string" { value = local.external_dns_zone_filter }
逻辑说明
join(",", var.r53_zone_names)将列表中的每个域名用逗号连接,生成字符串google.com.,example.com.- 通过Terraform的字符串插值语法
${...},把拼接后的字符串包裹在大括号中,最终得到符合external-dns要求的格式:{google.com.,example.com.}
这个方案完全兼容Terraform v1.3.7版本,无需依赖额外插件或复杂逻辑。
内容的提问来源于stack exchange,提问作者ipeacocks
相关产品推荐
相关产品推荐

