如何在 Route53 中为单个域的每个环境(阶段、产品)创建不同的 DNS 记录?
How to create different DNS records in Route53 for each environment(stage, prod) for a single domain?
所以我有一个域:example.com,我想设置一个舞台和生产环境。我无法理解如何为单个云端分发设置不同的 DNS 记录,例如:prod1.example.com 和 stag1.example.com
我打算尝试使用单独的状态文件来管理每个环境,但是这会导致重新创建云端分发并且可能会失败,因为我正在尝试的域已经存在分发使用。
如果我使用同一个状态文件,那么我需要创建两个分布,指向不同的存储桶,但这似乎会产生问题,因为我有环境特定变量,而且它似乎没有任何意义.
也许我需要创建一个单独的项目来管理云端方面,而另一个项目来管理其他资源?目前我正在一个项目中完成这一切。
您可以为不同的环境使用单独的状态文件,这将是最好的解决方案。通过这种方式,您可以为每个环境单独分配 CloudFront,其他所有内容也分开。
路线 53 区域 (https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/route53_zone) 有一个数据源:
data "aws_route53_zone" "zone" {
name = "..."
}
然后您可以将 A 记录添加到 CloudFront 分配:
resource "aws_route53_record" "www" {
zone_id = "${data.aws_route53_zone.zone.zone_id}"
name = "${var.prefix}.${data.aws_route53_zone.zone.name}"
type = "A"
alias {
name = "${aws_cloudfront_distribution.s3_distribution.domain_name}"
zone_id = "Z2FDTNDATAQYW2"
evaluate_target_health = true
}
}
这样只要前缀 (prod1, stage1) 不冲突就可以同时部署多个状态。
所以我有一个域:example.com,我想设置一个舞台和生产环境。我无法理解如何为单个云端分发设置不同的 DNS 记录,例如:prod1.example.com 和 stag1.example.com
我打算尝试使用单独的状态文件来管理每个环境,但是这会导致重新创建云端分发并且可能会失败,因为我正在尝试的域已经存在分发使用。
如果我使用同一个状态文件,那么我需要创建两个分布,指向不同的存储桶,但这似乎会产生问题,因为我有环境特定变量,而且它似乎没有任何意义.
也许我需要创建一个单独的项目来管理云端方面,而另一个项目来管理其他资源?目前我正在一个项目中完成这一切。
您可以为不同的环境使用单独的状态文件,这将是最好的解决方案。通过这种方式,您可以为每个环境单独分配 CloudFront,其他所有内容也分开。
路线 53 区域 (https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/route53_zone) 有一个数据源:
data "aws_route53_zone" "zone" {
name = "..."
}
然后您可以将 A 记录添加到 CloudFront 分配:
resource "aws_route53_record" "www" {
zone_id = "${data.aws_route53_zone.zone.zone_id}"
name = "${var.prefix}.${data.aws_route53_zone.zone.name}"
type = "A"
alias {
name = "${aws_cloudfront_distribution.s3_distribution.domain_name}"
zone_id = "Z2FDTNDATAQYW2"
evaluate_target_health = true
}
}
这样只要前缀 (prod1, stage1) 不冲突就可以同时部署多个状态。