Terraform - AWS Route53防止域删除

时间:2018-04-26 17:57:35

标签: amazon-web-services terraform amazon-route53

我在AWS上使用terraform来管理环境,并希望能够引用现有的route53域,在域中添加/修改记录等。

如果我跑了" terraform destroy"我想删除terraform代码中添加的所有记录,但我不想删除域本身。

是否有适当的"在terraform配置中完成此操作的方法?目前我将域信息(区域ID等)硬编码到.tf文件中,但是如果有一种方法可以从资源本身引用它,而不允许TF破坏看似理想的域。

任何帮助将不胜感激!

谢谢,

克里斯

2 个答案:

答案 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而不对其中的随机字符串进行硬编码,但不会触及域本身的基础。

谢谢!