华为公有云运维开发——弹性伸缩组管理
在云服务器的/root/huawei目录下编写create_as_group.py文件,并导入赛项提供的huaweicloudapi.py文件获取连接。编写Python代码,调用auto_scaling类,创建华为云的弹性伸缩组,具体要求为
(1)伸缩组名称:chinaskills_as_group;
(2)区域配置:cn-north-4a;
(3)弹性伸缩配置:chinaskills_as_config;
(4)vpc配置:chinaskills_vpc;
(5)子网配置:chinaskills_subnet;
(6)安全组配置:chinaskills_security_group;
(7)云服务器数配置:最大实例3台、最小实例1台、期望实例2台;
(8)配置弹性公网IP随实例释放;
(9)以上需求可用直接使用其ID,例如:网络ID、安全组ID等等;
(10)如果弹性伸缩组已经存在,代码中需要先删除;
(11)使用其源码的get方法输出此弹性伸缩组的详细信息。
完成后提交云服务器节点的用户名、密码和IP地址到答题框。
from huaweicloudsdkcore.auth.credentials import BasicCredentials
from huaweicloudsdkas.v1.region.as_region import AsRegion
from huaweicloudsdkcore.exceptions import exceptions
from huaweicloudsdkas.v1 import *
if __name__ == "__main__":
ak = ""
sk = ""
credentials = BasicCredentials(ak, sk)
client = AsClient.new_builder() \
.with_credentials(credentials) \
.with_region(AsRegion.value_of("cn-north-4")) \
.build()
try:
# 查询
request = ListScalingGroupsRequest()
response = client.list_scaling_groups(request).to_dict()
if len(response['scaling_groups']) > 0:
for i in response['scaling_groups']:
# 删除
scaling_group_id = i['scaling_group_id']
request = DeleteScalingGroupRequest()
request.scaling_group_id = scaling_group_id
response = client.delete_scaling_group(request).to_dict()
print(response)
# 创建
request = CreateScalingGroupRequest()
listSecurityGroupsbody = [
SecurityGroup(
id="10a7d515-8fc5-4b89-a9e0-cd76cd24d4d3"
)
]
listNetworksbody = [
Networks(
id="60fac206-a107-485e-8a54-79216547e54a"
)
]
listAvailableZonesbody = [
"cn-north-4a"
]
request.body = CreateScalingGroupOption(
vpc_id="eafce6b0-0ee0-4e1e-98f4-6e8fe4c96781",
security_groups=listSecurityGroupsbody,
networks=listNetworksbody,
available_zones=listAvailableZonesbody,
max_instance_number=3,
min_instance_number=1,
desire_instance_number=2,
scaling_configuration_id="28a4a873-4788-4055-b371-665b836a19cd",
delete_volume=True,
delete_publicip=True,
scaling_group_name="chinaskills_as_group"
)
response = client.create_scaling_group(request).to_dict()
print(response)
scaling_group_id = response['scaling_group_id']
# 查询
request = ShowScalingGroupRequest()
request.scaling_group_id = scaling_group_id
response = client.show_scaling_group(request)
print(response)
except exceptions.ClientRequestException as e:
print(e.status_code)
print(e.request_id)
print(e.error_code)
print(e.error_msg)