AccessKeyId = 'xxxxxxxxxxxxx'
AccessKeySecret = 'xxxxxxxxxxxxxxxx'
City = 'cn-beijing'
import time
import re
import logging
from aliyunsdkcore import client
from aliyunsdkecs.request.v20140526 import DescribeInstancesRequest, DescribeRegionsRequest, \
DescribeAvailableResourceRequest, DescribeImagesRequest, DescribeSecurityGroupsRequest, DescribeVpcsRequest, \
DescribeVSwitchesRequest,CreateInstanceRequest,AllocatePublicIpAddre***equest,StartInstanceRequest
import json
logger = logging.getLogger('test')
class AliyunEcsCreate(object):
def __init__(self, AccessKeyId, AccessKeySecret, City):
self.AccessKeyId = AccessKeyId
self.AccessKeySecret = AccessKeySecret
self.City = City
def DescribeRegions(self):
"""
地域
:return: {'cn-qingdao': '华北 1'}
"""
regionsclt = client.AcsClient(self.AccessKeyId, self.AccessKeySecret)
regionsreq = DescribeRegionsRequest.DescribeRegionsRequest()
regionsreq.set_accept_format('json')
regionsre = json.loads(regionsclt.do_action_with_exception(regionsreq), encoding='utf-8')
regions = {}
for i in regionsre['Regions']['Region']:
regions[i['RegionId']] = i['LocalName']
return regions
def DescribeAvailableResource(self, InstanceChargeType, region_id, DestinationResource, ZoneId=None):
"""
可用资源查询接口
:param region_id: 地域
:param DestinationResource: 查询的资源类型
:return:
"""
resourceclt = client.AcsClient(self.AccessKeyId, self.AccessKeySecret, region_id)
resourcereq = DescribeAvailableResourceRequest.DescribeAvailableResourceRequest()
if DestinationResource == 'InstanceType':
resourcereq.set_ZoneId(ZoneId)
resourcereq.set_IoOptimized('optimized')
resourcereq.set_InstanceChargeType(InstanceChargeType)
resourcereq.set_DestinationResource(DestinationResource)
resourcereq.set_accept_format('json')
resourcere = json.loads(resourceclt.do_action_with_exception(resourcereq), encoding='utf-8')
return resourcere
def AvailableZones(self, InstanceChargeType, region_id):
"""
<