from aliyunsdkcore.client import AcsClient from aliyunsdkcore.acs_exception.exceptions import ClientException,ServerException from aliyunsdkecs.request.v20140526 import DescribeInstancesRequest from aliyunsdkecs.request.v20140526 import StopInstanceRequest import json client = AcsClient( 'LTAIuSLn28HWNALb', 'O8Qobl7znrzcPIj90GAwu018OCrVkM', 'cn-hangzhou', ) request = DescribeInstancesRequest.DescribeInstancesRequest() request.set_PageSize(10) respone = client.do_action_with_exception(request) # print(respone) print(json.loads(respone))
def set_request(self): request = DescribeInstancesRequest.DescribeInstancesRequest() request.set_PageNumber(self.page_number) request.set_PageSize(self.page_size) return request
def aliyunDescribeInstances(self, **kwargs): ''' 获取 ECS 所有实例的详细信息 者指定实例的详细信息: 通过传参 InstanceIds = ["实例id"] ''' request = DescribeInstancesRequest.DescribeInstancesRequest() request.set_accept_format('json') request.add_query_param('PageSize', 100) if kwargs: for k, v in kwargs.items(): request.add_query_param(str(k), str(v)) try: response = self.clt.do_action_with_exception(request) except Exception as e: logError().error("获取阿里云上 ECS 实例信息异常,错误信息: %s" % (e)) return ret = { i["NetworkInterfaces"]["NetworkInterface"][0]["PrimaryIpAddress"]: { "idc": i["ZoneId"], "cpu_count": "%s 核" % (i["Cpu"]), "online_time": i["CreationTime"], "expired_time": i["ExpiredTime"], "charge_type": i["InstanceChargeType"], "instance_id": i["InstanceId"], "instance_name": i["InstanceName"], "instance_type": i["InstanceType"], "mem": "%.2f GB" % (i["Memory"] / 1024.0), "os_version": i["OSName"], "uuid": "%s" % (i["SerialNumber"].upper()), "server_brand": "Alibaba Cloud", "server_model": "Alibaba Cloud ECS", "type": "cloud", "idrac_ip": "0.0.0.0", "status": i["Status"], "hostname": i["HostName"], "public_ip": i["PublicIpAddress"].get("IpAddress")[0] if i["PublicIpAddress"].get("IpAddress") else i["EipAddress"]["IpAddress"], "manager_ip": i["NetworkInterfaces"]["NetworkInterface"][0] ["PrimaryIpAddress"], "network": [{ "status": "up", "ips": [{ "ip": i["NetworkInterfaces"]["NetworkInterface"][0] ["PrimaryIpAddress"], "netmask": "255.255.240.0" }], "mac": i["NetworkInterfaces"]["NetworkInterface"][0] ["MacAddress"], "name": "eth0" }] } for i in json.loads(response)["Instances"]["Instance"] } return ret
from aliyunsdkcore.acs_exception.exceptions import ClientException from aliyunsdkcore.acs_exception.exceptions import ServerException from aliyunsdkecs.request.v20140526 import DescribeInstancesRequest, DescribeInstanceAttributeRequest from aliyunsdkslb.request.v20140515 import DescribeLoadBalancersRequest, DescribeLoadBalancersRelatedEcsRequest, DescribeLoadBalancerAttributeRequest # Global Info: ALI_ACCESS_KEY = "XXXX" ALI_SECRET_KEY = "XXXX" SLB_NAME = "remix.example.com_qd_slb" SLB_REGION = "cn-qingdao" # Initialize AcsClient instance client = AcsClient(ALI_ACCESS_KEY, ALI_SECRET_KEY, SLB_REGION) # Initialize a ecs request and set parameters ecs_req = DescribeInstancesRequest.DescribeInstancesRequest() ecs_req.set_PageSize(10) # Print response, list all ecs instance: ecs_res = client.do_action_with_exception(ecs_req) instances = json.loads(ecs_res.decode('utf-8')) # print(json.dumps(instances, indent=2)) # Initialize a slb request and set parameters slb_req = DescribeLoadBalancersRequest.DescribeLoadBalancersRequest() slb_req.set_PageSize(10) # Print response, list all slb instances: slb_res = client.do_action_with_exception(slb_req) slbs = json.loads(slb_res.decode('utf-8')) # print(json.dumps(slbs, indent=2))
def get_query_resource_request(self, list_of_ids=None): queryInstances = DescribeInstancesRequest.DescribeInstancesRequest() if list_of_ids and len(list_of_ids) > 0: queryInstances.set_InstanceIds(str(list_of_ids)) return queryInstances
def get_request(id): request = DescribeInstancesRequest.DescribeInstancesRequest() request.set_accept_format('json') request.set_SecurityGroupId(id) return request