update_commonapi.py 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. #!/usr/bin/python
  2. # coding: utf-8
  3. import sys
  4. from aliyunsdkcore import client
  5. from aliyunsdkcore.request import CommonRequest
  6. from aliyunsdkecs.request.v20140526.DescribeInstancesRequest import DescribeInstancesRequest
  7. import json
  8. import socket
  9. AccessKey = 'LTAIuPbTPL3LDDKN'
  10. AccessSecret = 'ORcNedKwWuwVtcq4IRFtUDZgS0b1le'
  11. RegionId = 'cn-hangzhou'
  12. SlbId = 'lb-bp1xmaogphakz0l1o13mu'
  13. clt = client.AcsClient (AccessKey, AccessSecret, RegionId)
  14. Host = socket.gethostname ()
  15. def setServerWeight(BackendServers):
  16. request = CommonRequest ()
  17. request.set_accept_format ('json')
  18. request.set_domain ('slb.aliyuncs.com')
  19. request.set_version ('2014-05-15')
  20. request.set_method ('POST')
  21. request.set_action_name ('SetBackendServers')
  22. request.add_query_param ('BackendServers', BackendServers)
  23. request.add_query_param ('LoadBalancerId', SlbId)
  24. response = clt.do_action (request)
  25. return json.loads (response)
  26. def get_host_ip():
  27. try:
  28. s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
  29. s.connect(('8.8.8.8', 80))
  30. ip = s.getsockname()[0]
  31. finally:
  32. s.close()
  33. return ip
  34. if __name__ == "__main__":
  35. ip_add = []
  36. ip_add.append(get_host_ip())
  37. request = DescribeInstancesRequest ()
  38. request.set_PublicIpAddresses (ip_add)
  39. response = clt.do_action_with_exception (request)
  40. result = json.loads(response)
  41. instance_id = result["Instances"]["Instance"][0]["InstanceId"]
  42. back_servers = [{"ServerId": '', "Weight": ''}]
  43. back_servers[0]["ServerId"] = instance_id.encode('utf-8')
  44. back_servers[0]["Weight"] = sys.argv[1]
  45. print(back_servers)
  46. setServerWeight ( back_servers)