レコードの管理

Cloud DNS API の DNS レコードを管理するときに、変更リクエストを API に送信する場合があります。これらの変更では、リソース レコードセットのコレクションに対する追加と削除を行います。以下で説明するように、importexporttransaction コマンドを使用すると、変更を API に簡単に送信できます。

始める前に

すでにマネージド ゾーンを作成していて、そのタスクの前提条件を満たしている必要があります。

以下の gcloud コマンドラインのすべてのサンプルに対し、さまざまなプロジェクトを呼び出してコマンドを実行するために、--project パラメータを指定することもできます。

レコードセットのインポートとエクスポート

importexport を使用して、レコードセットをマネージド ゾーンの内外にコピーできます。インポートおよびエクスポートできる形式は、BIND ゾーンファイル形式または YAML レコード形式のいずれかです。

レコードセットをインポートするには、dns record-sets import コマンドを使用します。--zone-file-format フラグは、import に BIND ゾーン形式のファイルが想定されていることを伝えます。このフラグを省略すると、import は YAML 形式のレコード ファイルを想定します。

gcloud dns record-sets import -z=examplezonename \
   --zone-file-format path-to-example-zone-file

レコードセットをエクスポートするには、dns record-sets export コマンドを使用します。レコードセットを BIND ゾーン形式のファイルでエクスポートするには、--zone-file-format フラグを使用して、export に指示します。このフラグを省略すると、export はレコードセットを YAML 形式のレコード ファイルでエクスポートします。

gcloud dns record-sets export example.zone -z=examplezonename \
   --zone-file-format
   

トランザクションを使用してレコードセット内のレコードを追加または削除する

レコードセット内の DNS レコードを追加または削除するには、実行するオペレーションを指定するトランザクションを作成して実行します。トランザクションは、一緒に伝播すべき 1 つ以上のレコード変更のグループです。トランザクション全体が成功または失敗のいずれかになるため、データが中間状態のままになることはありません。

トランザクションを使用してレコードセット内の DNS レコードを追加または削除するには、次の手順を実行します。

  1. start コマンドを実行してトランザクションを開始します。

    gcloud dns record-sets transaction start -z=examplezonename

    start コマンドを実行すると、Cloud DNS は transaction.yaml という YAML 形式のローカル ファイルを作成します。

  2. トランザクション コマンドを実行して、DNS レコードを追加または削除します。

    add コマンドは、トランザクションに A レコードを追加します。次に例を示します。

    gcloud dns record-sets transaction add -z=examplezonename \
       --name="www.example.com." \
       --type=A \
       --ttl=300 "7.5.7.8"

    remove コマンドは、トランザクションにレコードセットの削除を付加します。次に例を示します。

    gcloud dns record-sets transaction remove -z=examplezonename \
        --name="mail.example.com." \
        --type=A \
       --ttl=300 "7.5.9.99"

    既存のレコードを置き換えるには、remove コマンドの後に add コマンドを発行します。次に例を示します。

    gcloud dns record-sets transaction add -z=examplezonename \
       --name="mail.example.com." \
       --type=A \
       --ttl=300 "7.5.9.199"

    トランザクション コマンドを実行すると、これらのコマンドが transaction.yaml ファイルに追加されます。

  3. トランザクション コマンドの実行が終了したら、execute コマンドを実行してトランザクションを実行します。次に例を示します。

    gcloud dns record-sets transaction execute -z=examplezonename

    トランザクションが実行または中止されると、transaction.yaml ファイルは削除されます。

現在のレコードセットの表示

ゾーンの現在の DNS レコードを表示するには:

コマンドライン

gcloud dns record-sets list --zone="myzonename"
コマンドによって、最初の 100 レコードのリソース レコードセットの JSON レスポンスが出力されます。次の追加のパラメータを指定できます。
  • limit: リスト表示するレコードセットの最大数です。
  • name: このドメイン名と完全に一致するレコードセットのみをリスト表示します。
  • type: このタイプのレコードだけをリスト表示します。指定した場合、--name パラメータも指定する必要があります。

Python

def list_resource_records(project_id, zone_name):
    client = dns.Client(project=project_id)
    zone = client.zone(zone_name)

    records = zone.list_resource_record_sets()

    return [(record.name, record.record_type, record.ttl, record.rrdatas)
            for record in records]

次のステップ

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

Cloud DNS のドキュメント