|
@@ -6,6 +6,7 @@ import requests
|
|
|
import asyncio
|
|
|
|
|
|
from aliyunsdkcore.client import AcsClient
|
|
|
+from aliyunsdkslb.request.v20140515.AddBackendServersRequest import AddBackendServersRequest
|
|
|
from aliyunsdkecs.request.v20140526.RunInstancesRequest import RunInstancesRequest
|
|
|
from aliyunsdkecs.request.v20140526.DescribeInstancesRequest import DescribeInstancesRequest
|
|
|
from aliyunsdkecs.request.v20140526.DescribeNetworkInterfacesRequest import DescribeNetworkInterfacesRequest
|
|
@@ -324,13 +325,32 @@ def set_instance_weight_process(client, slb_id, instance_id_list, weight_list):
|
|
|
:return:
|
|
|
"""
|
|
|
for weight, sleep_time in weight_list:
|
|
|
+ logging.info(f"weight = {weight}")
|
|
|
flag = True
|
|
|
while flag:
|
|
|
try:
|
|
|
set_weight_for_instances(client=client, slb_id=slb_id, instance_id_list=instance_id_list, weight=weight)
|
|
|
- logging.info(f"weight = {weight}")
|
|
|
time.sleep(sleep_time)
|
|
|
flag = False
|
|
|
except Exception as e:
|
|
|
time.sleep(10)
|
|
|
continue
|
|
|
+
|
|
|
+
|
|
|
+def add_backend_servers(client, slb_id, instances):
|
|
|
+ """
|
|
|
+ 服务器挂载到负载均衡
|
|
|
+ :param client:
|
|
|
+ :param slb_id:
|
|
|
+ :param instances: 实例列表 [(instance_id, ip), ...]
|
|
|
+ :return:
|
|
|
+ """
|
|
|
+ request = AddBackendServersRequest()
|
|
|
+ request.set_accept_format('json')
|
|
|
+ request.set_LoadBalancerId(slb_id)
|
|
|
+ backend_servers = [
|
|
|
+ {"ServerId": instance_id, "Weight": "0", "Type": "ecs", "ServerIp": ip_address}
|
|
|
+ for instance_id, ip_address in instances]
|
|
|
+ request.set_BackendServers(backend_servers)
|
|
|
+ response = client.do_action_with_exception(request)
|
|
|
+ return response
|