首页 文章

Terraform - AWS Route53防止域删除

提问于
浏览
2

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

如果我运行“terraform destroy”我想删除terraform代码中添加的所有记录,但我不想删除域本身 .

在terraform配置中是否有“正确”的方法来实现这一点?目前我将域信息(区域ID等)硬编码到.tf文件中,但是如果有一种方法可以从资源本身引用它,而不允许TF破坏看似理想的域 .

任何帮助,将不胜感激!

谢谢,

克里斯

2 回答

  • 1

    我认为你只是在寻找terraform资源生命周期选项,防止破坏 . https://www.terraform.io/docs/configuration/resources.html#prevent_destroy . 将其添加到您的aws_route53_zone资源中 .

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

    谢谢!

相关问题