Terraform azurerm_private_dns_zone资源soa_record.email参数语法报错
问题根因
该报错是azurerm 服务商对SOA记录邮箱参数的校验规则不符合普通邮箱格式导致,你的Terraform代码中变量定义、资源块的结构本身没有错误。
修复规则
DNS SOA记录有专门的格式规范,你传入的邮箱值需要满足两个要求:
- 普通邮箱中的
@符号必须替换为英文句号.,例如原邮箱为admin@example.com,填写时需要改为admin.example.com - 整个邮箱值仅允许包含大小写字母、数字、下划线、短横线、英文句号,禁止使用空格、中文、其他特殊符号
正确传值示例
private_dns_zones = [ { name = "zone1.local" resource_group_name = "test-rg" tags = {} soa_record = { email = "admin.example.com" # 已将@替换为. expire_time = 2419200 minimum_ttl = 300 refresh_time = 3600 retry_time = 300 ttl = 3600 } } ]
辅助排查方法
如果修改格式后仍然报错,可以添加临时输出块打印实际传入的邮箱值,确认是否存在拼写错误、隐藏字符或者变量传值不符合要求:
output "soa_email_check" { value = { for zone, config in var.private_dns_zones : zone => config.soa_record.email } }
内容的提问来源于stack exchange,提问作者Vegas588
相关产品推荐
相关产品推荐

