Google DNSクラウドのレコードを上書きするベストプラクティスは誰ですか。 https://cloud.google.com/dns/api/v1/changes/createは役に立ちません!DNSレコードを更新/上書きするGoogle Cloud
私は削除して作成することができましたが、うまくありません;)、停止が発生する可能性があります。
よろしく
Google DNSクラウドのレコードを上書きするベストプラクティスは誰ですか。 https://cloud.google.com/dns/api/v1/changes/createは役に立ちません!DNSレコードを更新/上書きするGoogle Cloud
私は削除して作成することができましたが、うまくありません;)、停止が発生する可能性があります。
よろしく
クラウドDNSのAPIは、更新アクションを実行するためにChanges
オブジェクトを使用しています。 Changes
を作成することはできますが、削除することはありません。クラウドDNS APIでは、リソースレコードセットに対して直接操作することはありません。代わりにChanges
オブジェクトを作成し、希望するadditions
とdeletions
を作成し、正常に作成された場合は、それらの更新を管理対象DNSゾーンの指定されたリソースレコードセットに適用します。
diffの適用を指定してファイルを編集したり、Gitリポジトリのコミット履歴を追加してファイルの内容を変更したりするような、珍しいメンタルモデルです。それでも、このAPIを使用して何をしたいのかを確かに達成することができます。また、権限のあるサーバーで原子的に適用されます(ただし、DNSシステム全体ではキャッシュのため原子的に何もしません)。変更を加えると、変更する前にのの前にTTLを減らしてください)。ここでのアトミック性は、更新自体に関するものです。管理対象ゾーンを変更する複数のアプリケーションがあり、特定のレコードセットの変更に競合がある場合、作成操作は失敗し、修正された削除で変更を再試行します(変更を静かに上書きするのではなく)。
これは、Changes
オブジェクトを作成して、現在のリソースレコードセットを指定するdeletions
と希望の置換を指定するadditions
オブジェクトを作成することです。これは、特にあなたが同じタイプの多くのレコードを持つドメイン名を持っている場合は、かなり冗長になります。たとえば、mydomain.example(1.1.1.1,2.2.2.2,3.3.3.3、および4.4.4.4)の4つのAレコードがあり、3.3.3.3アドレスを5.5.5.5に変更する場合は、元の4つのAレコードはdeletions
に、次に新しい4つ(1.1.1.1,2.2.2.2,4.4.4.4、および5.5.5.5)がadditions
にあります。あなたはちょうどあなたが作成しているChanges
オブジェクトに対してdeletions
とadditions
を設定する必要があり、https://cloud.google.com/dns/api/v1/changes/create#examples:
クラウドDNSのドキュメントでは、あなたがやりたいことに適応できるサンプルコードの定型文が用意されています。
私はこの目的でAPIを使用したことはありませんが、コマンドライン、すなわちgcloudを使用してDNSレコードを更新すると、1回のトランザクションで変更がバインドされ、レコードの削除と更新されたレコードの追加の両方のタスクが単一の取引。トランザクションは本質的に原子的なものであるため、トランザクションが停止してはいけません。
個人的には、自分のドメインのDNS設定を更新するためにgcloudを使用している間、何の不具合も見たことはありませんでした。