Terraform - AWS Route53 防止域名删除

3
我正在使用AWS Terraform来管理一个环境,并希望能够引用现有的route53域名,添加/修改域中的记录等操作。
如果我执行"terraform destroy"命令,我想删除在terraform代码中添加的所有记录,但我不想删除域本身。
在terraform配置文件中有没有“适当”的方法来完成这个任务?目前,我将域信息(区域ID等)硬编码到.tf文件中,但如果有一种方法可以从资源本身引用这些信息而不允许TF销毁该域,那就更理想了。
非常感谢您的帮助!
谢谢,
Chris
2个回答

5

我相信我找到了我需要的答案,那就是在我的TF代码中将域定义为"data"而不是资源。

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而不必在其中硬编码随机字符串,但不会涉及到域名本身的基础部分。

谢谢!


2

谢谢,这通常很有帮助,但在这种情况下,我不想让它抛出错误,我只想让它保留域名并以一种看起来成功的方式销毁其他所有内容(错误无疑会使未来的某个人感到困惑)。不过我认为我已经找到了解决方案(请参见我在下面对我的问题的回答)。 - Chris Slack

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接