Amazon web services 从Amazon Route 53导出DNS分区文件

Amazon web services 从Amazon Route 53导出DNS分区文件,amazon-web-services,dns,amazon-route53,Amazon Web Services,Dns,Amazon Route53,我想从我的Amazon Route 53设置导出DNS分区文件。这是可能的,还是只能手动创建分区文件?(例如通过)这还不可能。您必须使用API的ListResourceRecordSets并自己构建分区文件。可以使用导出和导入以下脚本以绑定格式从Route53导出分区详细信息。将域名作为参数传递给脚本。(这需要安装和配置。) 如中所述,是使用命令行界面与Route 53交互的绝佳工具 首先,在~/.aws/config文件中配置您的帐户密钥: [default] aws_access_key_i

我想从我的Amazon Route 53设置导出DNS分区文件。这是可能的,还是只能手动创建分区文件?(例如通过)

这还不可能。您必须使用API的
ListResourceRecordSets
并自己构建分区文件。

可以使用导出和导入以下脚本以绑定格式从Route53导出分区详细信息。将域名作为参数传递给脚本。(这需要安装和配置。)

如中所述,是使用命令行界面与Route 53交互的绝佳工具

首先,在
~/.aws/config
文件中配置您的帐户密钥:

[default]
aws_access_key_id = AK.....ZP
aws_secret_access_key = 8j.....M0
然后,使用
导出
命令:

$ cli53 export --full --debug example.com > example.com.zone 2> example.com.zone.log
导出后验证
example.com.zone
文件,以确保所有内容都正确导出

您可以最近导入分区:

$ cli53 import --file ./example.com.zone example.com

如果您想将Route53区域从一个AWS帐户转移到另一个AWS帐户,您可以使用
配置文件
选项。只需将两个命名帐户添加到
~/.aws/config
文件中,并在导出和导入期间使用
profile
属性引用它们。您甚至可以通过管道传输这两个命令。

您可以使用aws api导出


aws route53列出资源记录集--托管区域id您的区域id

请参阅此工具:它是一个命令行脚本,用于管理Amazon Route 53 dns服务。我不敢相信开发人员想到“导入”按钮而忘记了“导出!”是有道理的,他们想带来业务,但想让业务很难流失。但是是的,非常讨厌!感谢您参考cli工具。它们的记录值不符合RFC。他们将无法在不丢失数据的情况下导出。祝你好运!将带有该API调用的所有记录保存到JSON文件中很简单。不幸的是,您必须编辑该文件,包括编辑该文件中的每一条记录,使其具有正确的格式,然后才能使用它进行导入。在我的例子中,我们有250多条记录,这使得这完全不现实。绝对是AWS的垃圾!这里已经回答了,请添加一些解释。@szentmarjay tibor您可以更改以下行,因为如果默认输出与json不同,它将给出错误
hostedzoneid=$(aws route53列出托管区域| jq-r).hostedzone[]| select(.Name=\“$zonename.\”)|.Id“| cut-d'/'-f3)
”,以避免空迭代:aws route53列出资源记录集--托管区域Id$hostedzoneid--输出json | jq-jr.resourceRecordset[]|(.Name)\t(.TTL)\t(.Type)\t(.ResourceRecords[])?.Value)\n“'上面的注释很有用,但不会转义
。而是使用:
aws route53列出资源记录集--托管区域id$hostedzoneid--输出json | jq-jr'.ResourceRecordSets[]|“\(.Name)\t\(.TTL)\t\(.Type)\t\(.ResourceRecords[]?.Value)\n'”
$ cli53 import --file ./example.com.zone example.com