我正在对 PowerDNS 进行以下 API 调用,希望用oldhostname.example.net
新值替换旧记录值newhostname.example.net
。
PATCH /api/v1/servers/localhost/zones/example.org
X-API-Key: secret
Content-Type: application/json
{
"rrsets": [
{
"name": "test.example.org.",
"type": "CNAME",
"ttl": 3600,
"changetype": "REPLACE",
"records": [
{
"content": "newhostname.example.net.",
"disabled": false
}
]
}
]
}
结果是 API 出现 400 错误,并显示以下消息"The CNAME record you are trying to create already exists."
我知道该记录test.example.org
已经存在,我的目的是用新内容替换它。
进行两次单独的调用(一次删除,一次添加)是可行的。但我想避免 NXDOMAIN 对两次 API 调用之间的查询做出任何短暂的响应,因为这可能会在环境中的其他 DNS 转发器上产生负面缓存,并导致比必要时间更长的中断。
如果"changetype": "REPLACE"
实际上没有替换记录,那么在此 API 中更新记录的正确方法是什么?