Terraform 设置 Route53 NS 记录永远不会完成
Posted
技术标签:
【中文标题】Terraform 设置 Route53 NS 记录永远不会完成【英文标题】:Terraform setting Route53 NS record never completes 【发布时间】:2021-12-29 19:04:28 【问题描述】:resource "aws_route53_record" "fix-ns"
zone_id = aws_route53_zone.main.zone_id
name = var.domain_name
type = "NS"
ttl = "30"
records = ["ns-1999.awsdns-57.co.uk", "ns-1031.awsdns-00.org", "ns-688.awsdns-22.net", "ns-325.awsdns-40.com"]
我希望我的 Route53 NS 记录与一组已知的 DNS NS 记录匹配,因此我添加了上述资源。我的自动化 IAM 用户拥有AmazonRoute53FullAccess
。我们到达aws_route53_record.fix-ns: Creating...
好的,它没有抛出任何错误,但它永远不会完成。
关于为什么的建议?
编辑:我突然想到,我从未看到此资源的 Still creating...
消息,它只会阻止进一步的资源创建。
【问题讨论】:
【参考方案1】:在黑暗中有点刺,但是......
我怀疑它实际上对你来说是失败的,但是the default retry count max_retries = 25
启动并且你看不到错误消息。那里的重试机制有指数回退(这有利于其他原因),所以25
重试需要几分钟才能结束。
尝试将max_retries
设置为1
或2
并观察结果(我猜这将是一个错误)。
【讨论】:
很高兴知道这是一个选项,但遗憾的是仍然没有显示我的错误。在收到任何错误消息之前,我必须对问题资源执行apply target
。【参考方案2】:
我需要将allow_overwrite = true
添加到资源中。
resource "aws_route53_record" "fix-ns"
allow_overwrite = true
zone_id = aws_route53_zone.main.zone_id
name = var.domain_name
type = "NS"
ttl = "30"
records = ["ns-1999.awsdns-57.co.uk", "ns-1031.awsdns-00.org", "ns-688.awsdns-22.net", "ns-325.awsdns-40.com"]
奇怪的是,我通过有针对性的部署 terraform apply -target=aws_route53_record.fix-ns
解决了这个问题。资源失败,但错误未在完整应用运行中出现,目标运行允许错误出现。感觉就像一个错误报告:o
【讨论】:
您描述的症状(即“全局”应用和目标应用之间的不一致)确实让我认为这可能是一些 Terraform 错误。或者 AWS 端的事情不是确定性的。我的意思是 - 他们服务器端的错误可能会来来去去。以上是关于Terraform 设置 Route53 NS 记录永远不会完成的主要内容,如果未能解决你的问题,请参考以下文章
Terraform - 找不到匹配的 Route53Zone
terraform - 如何为 DNS 创建 Route53?
为啥我使用 terraform 资源 aws_route53_record 创建的 Route53 记录无法公开解析?
使用 terraform 的 Route 53 故障转移策略