新增、更新及刪除記錄

這個頁面說明如何新增、更新及刪除資源記錄集。

如要查看支援的資源記錄類型清單,請參閱「DNS 記錄總覽」。

事前準備

您必須先擁有或建立代管區域,才能建立資源記錄集。如要進一步瞭解如何建立代管區域 (您可以在其中建立資源記錄集),請參閱「建立代管區域」。

新增資源記錄集

請按照下列步驟新增資源記錄集:

控制台

  1. 前往 Google Cloud 控制台的「Cloud DNS zones」(Cloud DNS 區域) 頁面。

    前往 Cloud DNS 區域

  2. 按一下要新增記錄的代管區域名稱。

  3. 在「Zone details」(區域詳細資料) 頁面中,按一下「Add standard」(新增標準)

  4. 在「Create record set」(建立記錄集) 頁面的「DNS Name」(DNS 名稱) 欄位中,輸入 DNS 區域的子網域,例如 mail。系統會自動在結尾處加上點號。

    如要建立萬用字元 DNS 記錄,請輸入星號,例如 *.example.com

    @ 字元不會動建立頂端節點記錄。 如要在網域頂層節點建立資源記錄,請將「DNS name」(DNS 名稱) 欄位留空。

  5. 選取「Resource record type」(資源記錄類型),例如 MX

  6. 在「TTL」(存留時間) 欄位中,輸入資源記錄存留時間的數字值,也就是記錄可快取的時間。這個值必須是正整數

  7. 從「TTL unit」(TTL 單位) 選單中選取時間單位,例如 minutes

  8. 視您選取的資源記錄類型而定,填入剩餘欄位

  9. 如要輸入其他資訊,請按一下「Add item」(新增項目)

  10. 點按「Create」(建立)

gcloud

使用 gcloud dns record-sets create 指令新增資源記錄集:

gcloud dns record-sets create RRSET_NAME \
    --rrdatas=RR_DATA \
    --ttl=TTL \
    --type=RRSET_TYPE \
    --zone=MANAGED_ZONE

更改下列內容:

  • RRSET_NAME:與這個區域的 DNS 名稱相符的 DNS 名稱,做為傳入查詢的後置字串,例如 test.example.com
  • RR_DATA:與資源記錄集相關聯的任意值,例如 198.51.100.5。您也可以輸入多個值 (rrdata1 rrdata2 rrdata3),例如 198.51.100.5 10.2.3.4...
  • TTL:解析器快取這個資源記錄集的存留時間 (以秒為單位),例如 30
  • RRSET_TYPE:這個資源記錄集的資源記錄類型,例如 A
  • MANAGED_ZONE:這個資源記錄集所屬的代管區域,例如 my-zone-name。這個資源記錄集的名稱必須使用代管區域的 DNS 名稱做為後置字串

API

使用 resourceRecordSets.create 方法即可新增資源記錄集:

POST https://dns.googleapis.com/dns/v1/projects/PROJECT_ID/managedZones/MANAGED_ZONE/rrsets
{
    "name": "RRSET_NAME",
    "type": "RRSET_TYPE",
    "ttl": TTL,
    "rrdatas": [ RR_DATA ]
}

更改下列內容:

  • PROJECT_ID:專案 ID
  • MANAGED_ZONE:這個資源記錄集所屬的代管區域,例如 my-zone-name。這個資源記錄集的名稱必須使用代管區域的 DNS 名稱做為後置字串
  • RRSET_NAME:與這個區域的 DNS 名稱相符的 DNS 名稱,做為傳入查詢的後置字串,例如 test.example.com
  • RRSET_TYPE:這個資源記錄集的資源記錄類型,例如 A
  • TTL:解析器快取這個資源記錄集的存留時間 (以秒為單位),例如 30
  • RR_DATA:與資源記錄集相關聯的任意值,例如 "198.51.100.5"。您也可以半形逗號分隔方式輸入多個值,例如 "198.51.100.5","10.2.3.4"

Terraform

resource "google_dns_managed_zone" "parent_zone" {
  name        = "sample-zone"
  dns_name    = "sample-zone.hashicorptest.com."
  description = "Test Description"
}

resource "google_dns_record_set" "default" {
  managed_zone = google_dns_managed_zone.parent_zone.name
  name         = "test-record.sample-zone.hashicorptest.com."
  type         = "A"
  rrdatas      = ["10.0.0.1", "10.1.0.1"]
  ttl          = 86400
}

在交易中新增資源記錄集

您可以建立指定變更的交易,藉此新增多個資源記錄集。交易是指包含一或多項 DNS 記錄變更的群組,必須以單元形式套用。整個交易不是成功就是失敗,確保您的資料絕不會處於不一致的狀態。您只能使用 gcloud CLI 或 Cloud DNS API 建立交易。

如要建立交易,請按照下列步驟操作:

gcloud

  1. 使用 gcloud dns record-sets transaction start 指令即可開始交易:

    gcloud dns record-sets transaction start \
       --zone=MANAGED_ZONE
    

    MANAGED_ZONE 替換成要管理資源記錄集的代管區域名稱,例如 my-zone-name

  2. 使用 gcloud dns record-sets transaction add 指令,將資源記錄集新增為交易的一部分:

    gcloud dns record-sets transaction add RR_DATA \
       --name=DNS_NAME \
       --ttl=TTL \
       --type=RECORD_TYPE \
       --zone=MANAGED_ZONE
    

    更改下列內容:

    • RR_DATA:與資源記錄集相關聯的任意值,例如 198.51.100.5。您也可以輸入多個值 (rrdata1 rrdata2 rrdata3),例如 198.51.100.5 10.2.3.4...
    • DNS_NAME:要新增的記錄集 DNS 或網域名稱,例如 test.example.com
    • TTL:記錄集的存留時間 (TTL),以秒為單位,例如 300
    • RECORD_TYPE記錄類型,例如 A
    • MANAGED_ZONE:要管理的資源記錄集所屬的代管區域名稱,例如 my-zone-name
  3. 使用 gcloud dns record-sets transaction execute 指令來執行交易:

    gcloud dns record-sets transaction execute \
       --zone=MANAGED_ZONE
    
  4. 使用 gcloud dns record-sets transaction add 指令來新增萬用字元交易:

    gcloud dns record-sets transaction add \
       --zone=MANAGED_ZONE \
       --name=WILDCARD_DNS_NAME \
       --type=RECORD_TYPE \
       --ttl=TTL
    

    更改下列內容:

    • MANAGED_ZONE:要管理的資源記錄集所屬的代管區域名稱,例如 my-zone-name
    • WILDCARD_DNS_NAME:要新增的資源記錄集的 DNS 或網域名稱,例如 *.example.com. (請注意結尾處的點號)
    • RECORD_TYPE記錄類型,例如 CNAME
    • TTL:記錄集的存留時間,以秒為單位,例如 300

API

使用 changes.create 方法即可建立包含新資源記錄集的交易:

POST https://dns.googleapis.com/dns/v1/projects/PROJECT_ID/managedZones/MANAGED_ZONE/changes
{
  "deletions": []
  "additions": [
    {
      "name": DNS_NAME,
      "type": RECORD_TYPE,
      "ttl": TTL,
      "rrdatas": [
        RR_DATA
      ]
    }
  ]
}

更改下列內容:

  • PROJECT_ID:您的專案 ID
  • MANAGED_ZONE:代管區域名稱或 ID
  • DNS_NAME:記錄集的 DNS 或網域名稱,例如 test.example.com. (請注意結尾處的點號)
  • RECORD_TYPE記錄類型
  • TTL:記錄集的存留時間 (TTL),以秒為單位,例如 30
  • RR_DATA:與資源記錄集相關聯的任意值,例如 198.51.100.5。您也可以輸入多個值 (rrdata1 rrdata2 rrdata3),例如 198.51.100.5 10.2.3.4...

如要將電子郵件傳送到網域,請在區域中新增 MX 記錄。假如您使用 Google Workspace 做為簡易郵件傳輸通訊協定 (SMTP) 供應商,請參閱「設定 Google Workspace 的 MX 記錄」一文。否則,請使用供應商提供的 MX 記錄詳細資料,並完成 Google Workspace 所述的設定程序。

查看區域的資源記錄集

如要查看區域的資源記錄集,請按照下列步驟操作:

控制台

  1. 前往 Google Cloud 控制台的「Cloud DNS」頁面。

    前往 Cloud DNS

  2. 在「Zones」(區域) 分頁中,點按要查看資源記錄集的區域。

    「Zone details」(區域詳細資料) 頁面會顯示該區域中所有資源記錄集的詳細資料。

gcloud

使用 gcloud dns record-sets list 指令來查看區域的 DNS 記錄:

gcloud dns record-sets list \
   --zone="ZONE_NAME"

ZONE_NAME 替換成專案中的 DNS 區域名稱。

此指令會以含有前 100 筆記錄的資源記錄集,輸出 JSON 回應。您可以指定下列額外參數:

  • --limit:要列出的記錄集數量上限
  • --name:只列出使用這個確切網域名稱的資源記錄集
  • --type:只列出這類記錄。如果存在,也必須存在 --name 參數

API

使用 resourceRecordSets.list 方法即可查看區域的 DNS 記錄:

GET https://dns.googleapis.com/dns/v1/projects/PROJECT_ID/managedZones/MANAGED_ZONE/rrsets

更改下列內容:

  • PROJECT_ID:專案 ID
  • MANAGED_ZONE:這個資源記錄集所屬的代管區域,例如 my-zone-name。這個資源記錄集的名稱必須使用代管區域的 DNS 名稱做為後置字串

查看資源記錄集詳細資料

這項程序假設您已在代管的 Cloud DNS 區域中建立資源記錄集。

如要查看現有資源記錄集的詳細資料,請按照下列步驟操作:

控制台

  1. 前往 Google Cloud 控制台的「Cloud DNS zones」(Cloud DNS 區域) 頁面。

    前往 Cloud DNS 區域

  2. 按一下包含資源記錄集的區域。

  3. 按一下要查看詳細資料的資源記錄集。

    「Resource record set details」(資源記錄集詳細資料) 頁面會顯示資源記錄集的詳細資料。

gcloud

使用 gcloud dns record-sets describe 指令來查看現有資源記錄集的詳細資料:

gcloud dns record-sets describe RRSET_NAME \
  --type=RRSET_TYPE \
  --zone=MANAGED_ZONE

更改下列內容:

  • RRSET_NAME:與這個區域的 DNS 名稱相符的 DNS 名稱,做為傳入查詢的後置字串,例如 test.example.com
  • RRSET_TYPE:這個資源記錄集的資源記錄類型,例如 A
  • MANAGED_ZONE:這個資源記錄集所屬的代管區域,例如 my-zone-name。這個資源記錄集的名稱必須使用代管區域的 DNS 名稱做為後置字串

API

使用 resourceRecordSets.get 方法即可取得現有資源記錄集的詳細資料:

GET https://dns.googleapis.com/dns/v1/projects/PROJECT_ID/managedZones/MANAGED_ZONE/rrsets/RRSET_NAME/RRSET_TYPE

更改下列內容:

  • PROJECT_ID:專案 ID
  • MANAGED_ZONE:這個資源記錄集所屬的代管區域,例如 my-zone-name。這個資源記錄集的名稱必須使用代管區域的 DNS 名稱做為後置字串
  • RRSET_NAME:與這個區域的 DNS 名稱相符的 DNS 名稱,做為傳入查詢的後置字串,例如 test.example.com
  • RRSET_TYPE:這個資源記錄集的記錄類型,例如 A

更新資源記錄集

如要修改記錄集,請按照下列步驟操作:

控制台

如要為現有的資源記錄集套用部分更新,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的「Cloud DNS 區域」頁面。

    前往 Cloud DNS 區域

  2. 按一下要更新資源記錄集的區域。

  3. 在「Zone details」(區域詳細資料) 頁面中,按一下要更新的資源記錄集旁邊的「編輯」圖示

  4. 進行必要更新後,按一下「Save」(儲存)

gcloud

使用 gcloud dns record-sets update 指令即可為現有的資源記錄集套用部分更新:

gcloud dns record-sets update RRSET_NAME \
    --rrdatas=RR_DATA \
    --ttl=TTL \
    --type=RRSET_TYPE \
    --zone=MANAGED_ZONE

更改下列內容:

  • RRSET_NAME:與這個區域的 DNS 名稱相符的 DNS 名稱,做為傳入查詢的後置字串,例如 test.example.com
  • RR_DATA:與資源記錄集相關聯的任意值,例如 198.51.100.5。您也可以輸入多個值 (rrdata1 rrdata2 rrdata3),例如 198.51.100.5 10.2.3.4...
  • TTL:解析器快取這個資源記錄集的存留時間 (以秒為單位),例如 30
  • RRSET_TYPE:這個資源記錄集的資源記錄類型,例如 A
  • MANAGED_ZONE:這個資源記錄集所屬的代管區域,例如 my-zone-name。這個資源記錄集的名稱必須使用代管區域的 DNS 名稱做為後置字串

API

使用 resourceRecordSets.patch 方法即可為現有的資源記錄集套用部分更新:

PATCH https://dns.googleapis.com/dns/v1/projects/PROJECT_ID/managedZones/MANAGED_ZONE/rrsets/RRSET_NAME/RRSET_TYPE
{
  "ttl": TTL,
  "rrdatas": RR_DATA,
  "update_mask": {
      "paths": ["rrset.ttl", "rrset.rrdatas"]
  }
}

更改下列內容:

  • PROJECT_ID:專案 ID
  • MANAGED_ZONE:這個資源記錄集所屬的代管區域,例如 my-zone-name。這個資源記錄集的名稱必須使用代管區域的 DNS 名稱做為後置字串
  • RRSET_NAME:與這個區域的 DNS 名稱相符的 DNS 名稱,做為傳入查詢的後置字串,例如 test.example.com
  • RRSET_TYPE:這個資源記錄集的資源記錄類型,例如 A
  • TTL:解析器快取這個資源記錄集的存留時間 (以秒為單位),例如 30