# -*- coding: utf-8 -*- import os import sys import json from typing import List from http.client import responses from alibabacloud_alidns20150109.client import Client as Alidns20150109Client from alibabacloud_tea_openapi import models as open_api_models from alibabacloud_alidns20150109 import models as alidns_20150109_models from alibabacloud_tea_util import models as util_models from alibabacloud_tea_util.client import Client as UtilClient from alibabacloud_cms20190101.client import Client as Cms20190101Client from alibabacloud_tea_openapi import models as open_api_models from alibabacloud_cms20190101 import models as cms_20190101_models from alibabacloud_tea_util import models as util_models from alibabacloud_tea_util.client import Client as UtilClient import conf import utils def main(): try: # 云监控客户端 metrics_client = utils.client(access_key_id=conf.metrics_client['access_key_secret'], access_key_secret=conf.metrics_client['access_key_secret'], endpoint=conf.metrics_client['endpoint'] ) # DNS客户端 dns_client = utils.client(access_key_id=conf.dns_client['access_key_secret'], access_key_secret=conf.dns_client['access_key_secret'], endpoint=conf.dns_client['endpoint'] ) # 获取共享带宽流量 metric_name 入网流量 bandwidth = utils.DescribeMetricList(metrics_client=metrics_client, namespace=conf.namespace, metric_name=conf.metric_name, period=conf.period, dimensions=conf.dimensions, start_time=conf.start_time, end_time=conf.end_time) # 获取所有dns解析RecordId # {'Value': '', 'RecordId': ''} record_list = utils.DescribeDomainRecords(dns_client=dns_client, lang=conf.lang, domain_name=conf.domain_name) # 获取backup_alb RecordId matched_record_ids = [ record['RecordId'] for record in record_list if record['Value'] in conf.backup_alb_ip_list ] # 计算权重比 backup_weight = utils.update_dns_weights(bandwidth) for record in matched_record_ids: # 修改backup权重 utils.update_dnsslbweight(dns_client=dns_client, lang=conf.lang, record=record, backup_weight=backup_weight) except Exception as e: exit(e) if __name__ == '__main__': main()