我在AWS上使用terraform来管理环境,并希望能够引用现有的route53域,在域中添加/修改记录等。
如果我跑了" terraform destroy"我想删除terraform代码中添加的所有记录,但我不想删除域本身。
是否有适当的"在terraform配置中完成此操作的方法?目前我将域信息(区域ID等)硬编码到.tf文件中,但是如果有一种方法可以从资源本身引用它,而不允许TF破坏看似理想的域。
任何帮助将不胜感激!
谢谢,
克里斯
答案 0 :(得分:1)
我认为你只是在寻找terraform资源生命周期选项,防止破坏。 https://www.terraform.io/docs/configuration/resources.html#prevent_destroy。将其添加到您的aws_route53_zone资源中。
答案 1 :(得分:1)
我相信我发现了我正在寻找的答案,即将域名定义为“数据”,而不是我TF代码中的资源。
data "aws_route53_zone" "my_zone" {
name = "myzone.net"
}
resource "aws_route53_record" "myzone_net_mx_record" {
zone_id = "${data.aws_route53_zone.my_zone.zone_id}"
name = "*.myzone.net."
type = "MX"
records = [
"10 inbound-smtp.us-west-1.amazonaws.com"
]
ttl = "300"
}
这允许我引用区域ID而不对其中的随机字符串进行硬编码,但不会触及域本身的基础。
谢谢!