dns_weight.py 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. # -*- coding: utf-8 -*-
  2. # This file is auto-generated, don't edit it. Thanks.
  3. import os
  4. import sys
  5. import json
  6. from typing import List
  7. from http.client import responses
  8. from alibabacloud_alidns20150109.client import Client as Alidns20150109Client
  9. from alibabacloud_tea_openapi import models as open_api_models
  10. from alibabacloud_alidns20150109 import models as alidns_20150109_models
  11. from alibabacloud_tea_util import models as util_models
  12. from alibabacloud_tea_util.client import Client as UtilClient
  13. from alibabacloud_cms20190101.client import Client as Cms20190101Client
  14. from alibabacloud_tea_openapi import models as open_api_models
  15. from alibabacloud_cms20190101 import models as cms_20190101_models
  16. from alibabacloud_tea_util import models as util_models
  17. from alibabacloud_tea_util.client import Client as UtilClient
  18. import conf
  19. import utils
  20. def main():
  21. try:
  22. # 云监控客户端
  23. metrics_client = utils.client(access_key_id=conf.metrics_client['access_key_secret'],
  24. access_key_secret=conf.metrics_client['access_key_secret'],
  25. endpoint=conf.metrics_client['endpoint']
  26. )
  27. # DNS客户端
  28. dns_client = utils.client(access_key_id=conf.dns_client['access_key_secret'],
  29. access_key_secret=conf.dns_client['access_key_secret'],
  30. endpoint=conf.dns_client['endpoint']
  31. )
  32. # 获取共享带宽流量 metric_name 入网流量
  33. bandwidth = utils.DescribeMetricList(metrics_client=metrics_client,
  34. namespace=conf.namespace,
  35. metric_name=conf.metric_name,
  36. period=conf.period,
  37. dimensions=conf.dimensions,
  38. start_time=conf.start_time,
  39. end_time=conf.end_time)
  40. # 获取所有dns解析RecordId
  41. # {'Value': '', 'RecordId': ''}
  42. record_list = utils.DescribeDomainRecords(dns_client=dns_client,
  43. lang=conf.lang,
  44. domain_name=conf.domain_name)
  45. # 获取backup_alb RecordId
  46. matched_record_ids = [
  47. record['RecordId']
  48. for record in record_list
  49. if record['Value'] in conf.backup_alb_ip_list
  50. ]
  51. # 计算权重比
  52. backup_weight = utils.update_dns_weights(bandwidth)
  53. for record in matched_record_ids:
  54. # 修改backup权重
  55. utils.update_dnsslbweight(dns_client=dns_client,
  56. lang=conf.lang,
  57. record=record,
  58. backup_weight=backup_weight)
  59. except Exception as e:
  60. exit(e)
  61. if __name__ == '__main__':
  62. main()