Smart DNS: Auto-Detecting Route53 Records in Terraform
Every Route53 record in plain Terraform means a zone lookup, an explicit type, and for load balancers - a separate data source just to wire the alias.
data "aws_route53_zone" "this" { name = "api.example.com." }
data "aws_lb" "api" { name = "api-nlb" }
resource "aws_route53_record" "api" { zone_id = data . aws_route53_zone . this . zone_id name = "api.example.com" type = "A"
alias { name = data . aws_lb . api . dns_name zone_id = data . aws_lb . api . zone_id evaluate_target_health = true } }
Enter fullscreen mode
Exit fullscreen mode
With a module that infers everything, the same record becomes:
inputs = { name = "api.example.com" records = "api-nlb-1234567890.elb.eu-west-1.amazonaws.com" }
Enter fullscreen mode
Exit fullscreen mode
zone auto-detection
name = "api.example.com" β ββ strip first label β βΌ "example.com" βββΊ aws_route53_zone lookup
Enter fullscreen mode
Exit fullscreen mode
The module splits the FQDN, drops the first label,β¦