华为公有云运维开发——弹性伸缩组管理

在云服务器的/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)
该文章的评论已关闭