2 min read | by Jordi Prats
Using data sources on terraform allows us to make use of information not managed by Terraform, or defined by another separate Terraform codebase. We can use it for any resource os even an entire terraform remote state
Let's dive in
First we will need to "select" the data we want to retrieve by creating the data resource specifying the needed variable to be able to identify the resource. For example, for retrieving an aws_route53_zone we will need to specify it's name and whether is a private zone like this:
data "aws_route53_zone" "private_r53_zone" {
name = var.domain_name
private_zone = true
}
Once we have it defined, we can use it just as we would if it were defined as a resource but the data. prefix. For example:
resource "aws_route53_record" "cname_spinnaker" {
zone_id = data.aws_route53_zone.private_r53_zone.zone_id
name = "spinnaker.${var.domain_name}"
type = "CNAME"
ttl = "3600"
records = [module.spinnaker.hostname]
}
Posted on 23/03/2021