如何使用python脚本在GCP中创建DNS记录集



我正在尝试开发一个Python Automation脚本,该脚本添加一个DNS记录集;A";键入到我现有的GCP DNS管理区域中";我的网站";

import json
from google.oauth2 import service_account
from google.cloud import dns
from google.cloud.exceptions import NotFound
gcp_dns_credentials={
"type": "service_account",
"project_id": "mygcpprojectid-1122",
"private_key_id": "myprivkeyid",
"private_key": "-----BEGIN PRIVATE KEY-----nmyprivatekeyn-----END PRIVATE KEY-----n",
"client_email": "client-mail@mygcpprojectid-1122.iam.gserviceaccount.com",
"client_id": "myclientid",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://oauth2.googleapis.com/token",
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
"client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/client-mail%40mygcpprojectid-1122.iam.gserviceaccount.com"
}
project_id="mygcpprojectid-1122"
zone_name="my-sites"
dns_credentials = service_account.Credentials.from_service_account_info(gcp_dns_credentials)
client = dns.Client(project=project_id,credentials=dns_credentials)
zone = client.zone(zone_name)
create_records=dns.resource_record_set.ResourceRecordSet(name="mydnsrecord2.mygcpproject.com",record_type="A",ttl=300,rrdatas=["13.66.xx.xx"],zone=zone)

此脚本执行既不会引发错误,也不会创建DNS记录集。我把这个医生介绍给https://cloud.google.com/python/docs/reference/dns/latest/resource-record-set

有人能帮我吗?(

只是用python代码重申@JohnHanley解决方案

from google.oauth2 import service_account
from googleapiclient import discovery
gcp_dns_credentials={
"blah blah": "all dummy credentials in json format already mentioned in the question "
}
project_id="mygcpprojectid-1122"
zone_name="my-sites"
credentials = service_account.Credentials.from_service_account_info(gcp_dns_credentials)
service = discovery.build('dns', 'v1', credentials=credentials)
change_body = {
"additions": [
{
"name": "mydnsrecord2.mygcpproject.com.",
"type": "A",
"ttl": 300,
"rrdata": ["13.66.xx.xx"]
}
]
}
request = service.changes().create(project=project_id, managedZone=zone_name, body=change_body)
response = request.execute()

此脚本执行将创建mydnsrecord2.mygcpproject.com记录集

已转介此文档https://cloud.google.com/dns/docs/reference/v1/changes/create#python

没有报告错误,因为在Google Cloud DNS方面还没有做任何操作。

DNS更改是原子式的,这意味着您可以同时进行多个更改(添加、删除等(并应用所有更改。所有更改生效或不生效(回滚(。

使用DNS的操作是通过更改集执行的。这意味着创建一个更改列表(例如创建/修改/删除资源记录(。

add_record_set((方法追加到更改集链接。

create((方法应用变更集链接。此方法实际上是修改DNS服务器资源记录的方法。

谷歌云DNS更改设置

最新更新