Google cloud platform 如何在GCP中更新DNS的NS

Google cloud platform 如何在GCP中更新DNS的NS,google-cloud-platform,terraform-provider-gcp,nameservers,google-cloud-dns,Google Cloud Platform,Terraform Provider Gcp,Nameservers,Google Cloud Dns,您面临的业务影响是什么 大家好,我们有一些域名,比如milev.com,它在创建时分配了原始的4个NS。我想在它(我的第二个NS)上附加几个名称服务器 但是当我尝试使用terraform更新NS列表时,它失败了 错误:创建ResourceDnsRecordSet:googleapi:Error 409:名为“milev.com”的资源“entity.rrset”时出错。(NS)“已经存在,已经存在” 当然,mildev.com NS[[NS\u list\u origina\uz]]这个名字是存

您面临的业务影响是什么

大家好,我们有一些域名,比如milev.com,它在创建时分配了原始的4个NS。我想在它(我的第二个NS)上附加几个名称服务器

但是当我尝试使用terraform更新NS列表时,它失败了 错误:创建ResourceDnsRecordSet:googleapi:Error 409:名为“milev.com”的资源“entity.rrset”时出错。(NS)“已经存在,已经存在”

当然,mildev.com NS[[NS\u list\u origina\uz]]这个名字是存在的,但是有什么方法可以更新吗?我看到可以使用UI进行更新,但为什么不允许通过API进行更新呢

任何指导都是有益的

谢谢

  type       = string
  default    = "mildev.com."
}


resource "google_dns_managed_zone" "selected" {
  name        = format("d-%s",replace(trim(var.domain_name , "."),".","-"))
  dns_name    = var.domain_name
  visibility  = "public"
}


locals {
 sec_name_servers = [
     "pdns93.net.",
     "pdns94.biz.",
     "pdns93.com.",
     "pdns93.org.",
  ]
}

resource "google_dns_record_set" "add_ns_records" {
  name            =  google_dns_managed_zone.selected.dns_name
  rrdatas         = concat(local.sec_name_servers,google_dns_managed_zone.selected.name_servers)
  ttl             = 86400
  type            = "NS"
  managed_zone    = google_dns_managed_zone.selected.name
}

当Terraform创建一个google_dns_托管的_区域时,该区域会自动创建,其中包含特定于google云的NS记录(它们提供的区域将在其上生存的名称服务器)。Terraform不会将这些NS记录导入到state中,因此未来在任何Google Cloud Zone中添加或操作NS记录的所有尝试都将失败,原因是记录集已经存在:

  • google_dns_record_set.clouddns_ns:创建dns记录集时出错:googleapi:错误409:资源“entity.change.additions[0]”命名为“domain.com”。(NS)“已经存在,已经存在。”
另外,请确保您使用的是最新的terraform版本


$terraform-v

如果资源已经存在,则必须首先导入资源并重新创建现有配置。然后您可以在Terraform下管理该资源。不,资源不存在,它是作为脚本的一部分创建的。当域被创建时,它得到的是默认的NS集。作为这项要求的一部分,我试图用更多的NS来更新默认的NS集,当它说记录已经存在时,默认的NS集当然会存在。这不是aws的问题,因为aws有“允许覆盖”标志。虽然可以向您的域中添加其他名称服务器,但仅当您是DNS专家,并且您了解主服务器/从服务器/复制/等时,才可以这样做。这也必须在注册中心完成。提示:不要这样做。谢谢Siva,这是否意味着您不能附加默认的NS集?我确信它是有效的,因为我的整个管道就是这样创建的。它只是在最近的谷歌供应商那里失败了。我使用的是terraform 12.31,也尝试过后一个版本,但同样的错误。在aws中,这不是一个问题,因为您可以选择覆盖。