demo:
import sys
import json
from typing import List
from alibabacloud_emr20160408.client import Client as Emr20160408Client
from alibabacloud_tea_openapi import models as open_api_models
from alibabacloud_emr20160408 import models as emr_20160408_models
from alibabacloud_tea_util import models as util_models
from alibabacloud_tea_util.client import Client as UtilClient
class Sample:
def __init__(self):
pass
@staticmethod
def create_client(
access_key_id: str,
access_key_secret: str,
) -> Emr20160408Client:
"""
使用AK&SK初始化账号Client
@param access_key_id:
@param access_key_secret:
@return: Client
@throws Exception
"""
config = open_api_models.Config(
# 您的 AccessKey ID,
access_key_id=access_key_id,
# 您的 AccessKey Secret,
access_key_secret=access_key_secret
)
# 访问的域名
config.endpoint = f'emr.aliyuncs.com'
return Emr20160408Client(config)
@staticmethod
def main(
args: List[str],
) -> None:
list1 = []
list_copmpare = []
destination_resource = ['SystemDisk','DataDisk','InstanceType'] #目标资源
cluster_type = ['HADOOP','KAFKA','DATA SCIENCE','DRUID','FLINK','GATEWAY','CLICKHOUSE','SHUFFLE_SERVICE','EMR_STUDIO'] #集群类型
instance_charge_type = ['PostPaid','PrePaid'] #付费类型
client = Sample.create_client(AK,SK)
for x in range(len(destination_resource)):
for y in range(len(cluster_type)):
for z in range(len(instance_charge_type)):
list_emr_available_resource_request = emr_20160408_models.ListEmrAvailableResourceRequest(
region_id='cn-shanghai',
destination_resource=destination_resource[x],
cluster_type=cluster_type[y],
instance_charge_type=instance_charge_type[z],
)
runtime = util_models.RuntimeOptions()
try:
str1 = str(client.list_emr_available_resource_with_options(list_emr_available_resource_request, runtime))
except Exception as e:
condition = destination_resource[x] + '/' + cluster_type[y] + '/' + instance_charge_type[z]
# print('出错了,条件为:%s'%condition )
else:
# print(json.loads(str))
res = str1.replace('\'','\"')
res1 = json.loads(res)
# print(res1)
for i in range(len(res1['body']['EmrZoneInfoList']['EmrZoneInfo'])):
zoneid = res1['body']['EmrZoneInfoList']['EmrZoneInfo'][i]['ZoneId']
# print(zoneid)
a = res1['body']['EmrZoneInfoList']['EmrZoneInfo']
for j in range(len(a[i]['EmrResourceInfoList']['EmrResourceInfo'])):
type1 = a[i]['EmrResourceInfoList']['EmrResourceInfo'][j]['Type']
b = a[i]['EmrResourceInfoList']['EmrResourceInfo']
if type1 == None:
continue
for k in range(len(b[j]['SupportedResourceList']['SupportedResource'])):
value = b[j]['SupportedResourceList']['SupportedResource'][k]['Value'] #instancetype
c = b[j]['SupportedResourceList']['SupportedResource']
if c[k]['SupportNodeTypeList']['SupportNodeType'] == []:
SupportNodeType='None'
else:
SupportNodeType = str(c[k]['SupportNodeTypeList']['SupportNodeType'])
str3 = zoneid + '/' + 'EMR' + '/' + destination_resource[x] + '/' + cluster_type[y] + '/' + type1 + '/'+ SupportNodeType + '/' + value
str_compare = zoneid + '/' + type1 + '/' + SupportNodeType
if str_compare not in list_copmpare:
list1.append(str3)
list_copmpare.append(str_compare)
else:
continue
return list_emr
#记得可用区 H换成K