Amazon web services 如何使用预定义的NS创建route53区域,或更新已注册域的NS?

Amazon web services 如何使用预定义的NS创建route53区域,或更新已注册域的NS?,amazon-web-services,terraform,terraform-provider-aws,Amazon Web Services,Terraform,Terraform Provider Aws,我在53号公路上注册了一个域名。此域指向旧路由53路由的某些名称服务器。我现在正在构建我的地形脚本来创建一个新的Route53区域。创建此服务器时是否可以设置名称服务器?我尝试了以下方法,但无效: resource "aws_route53_record" "dev-ns" { zone_id = "${aws_route53_zone.main.zone_id}" name = "dev.example.com" type = "NS" ttl = "30"

我在53号公路上注册了一个域名。此域指向旧路由53路由的某些名称服务器。我现在正在构建我的地形脚本来创建一个新的Route53区域。创建此服务器时是否可以设置名称服务器?我尝试了以下方法,但无效:

resource "aws_route53_record" "dev-ns" {
  zone_id = "${aws_route53_zone.main.zone_id}"
  name    = "dev.example.com"
  type    = "NS"
  ttl     = "30"

  records = [
    "ns1.aws",
    "ns2.aws",
    "ns3.aws",
    "ns4.aws",
  ]
}
我可以想象这是不可能的,因为NS似乎是随机分配的。如果确实如此,是否有Terraform命令来更改我注册域的NS?我在Github上找到了这篇文章,因此我认为没有任何Terraform命令可以用于此:


有其他选择吗?

您可以通过委托集转义动态ns记录

默认情况下,路由53将随机选择的名称服务器分配给每个新托管区域。为了更容易地将DNS服务迁移到大量域的路由53,您可以创建一个可重用的委派集,然后将该可重用委派集与新的托管区域相关联

resource "aws_route53_delegation_set" "main" {
  reference_name = "DynDNS"
}

resource "aws_route53_zone" "primary" {
  name              = "hashicorp.com"
  delegation_set_id = "${aws_route53_delegation_set.main.id}"
}

resource "aws_route53_zone" "secondary" {
  name              = "terraform.io"
  delegation_set_id = "${aws_route53_delegation_set.main.id}"
}

来自

的示例在您的情况下,您最好将现有的Route53区域保存到您的状态文件中,以便Terraform可以开始管理它,而不是创建一个使用相同名称服务器的新区域

您可以使用以下命令:

terraform导入aws_route53_zone.myzone Z1D633PJN98FT9

其中,
import aws_route53_zone.myzone
指的是资源名称,
Z1D633PJN98FT9
指的是区域ID。

这会更新我注册域上的名称服务器吗?问题不是我的区域设置,这很好。目前我需要手动更新注册域页面上的NS。我正在寻找一个解决方法,这样我可以用Terraform设置整个环境。不,这不会让你这么做。不幸的是,在“注册域”下同步名称服务器仍然是一个手动过程。这是功能请求,但它还不是一个区域,对吗?我说的是注册域名。我认为需要做的是将注册域的名称服务器更新为区域中定义的服务器。注册域时,它通常会询问您是否要同时为其创建区域。如果你这样做了,那么你已经有了一个区域,所以很容易导入它。这是有道理的,在接受答案之前再问一个问题。。。如何将其放入Terrafrom文件中?我需要用同样的句子吗?你是什么意思?
terraform导入
行?这是将资源导入到您的状态的一次性命令。如果这对您来说是新的,您应该阅读有关导入状态的链接文档。是的,多亏了您的指导,它才起作用。谢谢