我在服务器上有一个(bash)脚本,它作为一个cron作业运行,并将我们所有的托管区域从谷歌云中的DNS项目导出到GCS。
for dnszone in $(gcloud dns managed-zones list --project={} --format="value(NAME)")
do
domain=$(gcloud dns managed-zones describe $dnszone --project={} --format="value(dnsName)")
filename="${domain}"
gcloud dns record-sets export $filename --zone=$dnszone --project={}
done
...
gsutil -m rsync -r -d ./ gs://bucket/$today/ 2> /dev/null
我想将所有cron作业从服务器移动到云调度器作业(具有绑定到云调度的发布/订阅触发器的云函数)。
我可以使用客户端库手动构造BIND格式的导出文件,但理想情况下,我会在客户端库中设置一个类似于Google Cloud SDK的导出功能。
我最近两天一直在阅读google的文档,没有解决客户端库命令自动格式化输出的问题。ChatGPT建议我使用resourcerecordset对象的不存在的export_to_file()
方法,这没有帮助。
我错过什么了吗?这可能吗?
1条答案
按热度按时间jdgnovmf1#
Python SDK支持
list_zones
:列出与此客户端关联的项目的分区。
等效的API调用是
ManagedZones: list
:枚举已创建但尚未删除的ManagedZones。
如果成功,此方法将返回具有以下结构的响应正文:
关于
managedZones Resource
:区域是一个管理责任下的DNS命名空间的子树。ManagedZone是表示由云DNS服务托管的DNS区域的资源。
因此,应该可以检索此值并将其保存为JSON文件。