我正在使用AWS的terraform来管理环境,并希望能够引用现有的route53域,在域中添加/修改记录等 .
如果我运行“terraform destroy”我想删除terraform代码中添加的所有记录,但我不想删除域本身 .
在terraform配置中是否有“正确”的方法来实现这一点?目前我将域信息(区域ID等)硬编码到.tf文件中,但是如果有一种方法可以从资源本身引用它,而不允许TF破坏看似理想的域 .
任何帮助,将不胜感激!
谢谢,
克里斯
我认为你只是在寻找terraform资源生命周期选项,防止破坏 . https://www.terraform.io/docs/configuration/resources.html#prevent_destroy . 将其添加到您的aws_route53_zone资源中 .
我相信我发现了我正在寻找的答案,即将域定义为“数据”而不是我的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而不对其中的随机字符串进行硬编码,但不会触及域本身的基础 .
谢谢!
2 回答
我认为你只是在寻找terraform资源生命周期选项,防止破坏 . https://www.terraform.io/docs/configuration/resources.html#prevent_destroy . 将其添加到您的aws_route53_zone资源中 .
我相信我发现了我正在寻找的答案,即将域定义为“数据”而不是我的TF代码中的资源 .
这允许我引用区域ID而不对其中的随机字符串进行硬编码,但不会触及域本身的基础 .
谢谢!