API文档
云服务器相关接口
实例相关接口
PythonSDK使用说明

1. 通过 PythonSDK 操作云服务器资源

本文档说明如何通过 PythonSDK 操作您的云服务器资源。

本文档中涉及到的 AccessKey 和 SecretAccessKey 只用作演示用,不作为您真实操作自己资源的依据。

本文档中涉及到的链接信息实际应为https://ai.blsc.cn (opens in a new tab)

本页所有接口都用到可用区信息,可用区具体说明详见 可用区, 本页不再重复说明

本页所有接口都用到资源规格信息,资源规格具体说明详见 资源规格, 本页不再重复说明

本页所有接口返回信息都包含异步任务信息,异步任务具体说明详见 异步任务, 本页不再重复说明

1.1. 云服务器密码加密

        hexPassword:str = PasswordUtils.toHex("DaQ2mUt1i4d.dcce")
        print(hexPassword)

1.2. 云服务器密码解密

        rawPassword:str = PasswordUtils.fromHex("3165666e50492e67464e616c49614155");
        print(rawPassword)

1.3. 创建云服务器询价

        # 实例化一个认证对象,入参需要传入智算云平台账户AccessKey和SecretAccessKey,此处还需注意密钥对的保密
        # 秘钥可前往智算云平台->个人中心->我的秘钥进行获取
        AccessKey:str = "abcd"
        SecretAccessKey:str = "abcd1234"
        clientProfile = ClientProfile(
            AccessKey,
            SecretAccessKey
        )
 
        # 实例化一个请求产品的client对象
        client = ECSClient(clientProfile)
        # 实例化一个请求对象,每个接口都会对应一个request对象
        request = RunInstancesRequest()
        # 待创建云服务器所属可用区
        request.zoneCode = "cn-zhongwei-a"
        # 待创建相同规格的云服务器个数
        request.count = 1
        # 待创建云服务器类型。详见InstanceType.vhostModel
        request.ecsModel = "ecs.cpu.calc.4c8g"
        # 待创建云服务器使用的镜像id
        request.imageUuid = "636bc998-9382-47e9-9573-6dbac34abda7"
        # 待创建云服务器系统盘类型
        request.rootDiskType = "HDD"
        # 待创建云服务器系统盘大小
        request.rootDiskSize = 20
        # 待创建云服务器计费类型
        request.billingType = BillingTypeEnum.BillingTypeEnum.PostPaid.name
        # 待创建云服务器带云盘信息
        ebs = EBSInput({"diskType": "HDD", "diskSize": "30"})
        request.ebs = [ebs]
        # 待创建云服务器带公网IP信息
        eip = EIPInput({"networkSize": 10, "networkType": "Flow"})
        request.eip = eip
        # 返回的response是一个InquiryPriceRunInstancesResponse实例
        # 该实例有三个重要属性,分别是code、message和data
        response = client.InquiryPriceRunInstances(request)
        # code属性表示本次请求返回的编码。该编码200表示正常,非200表示异常
        code = response.code
        # message属性表示本次请求返回的信息。如果code值为非200,则可通过message获得请求异常原因
        message = response.message
        # data属性为实际返回的云服务器信息列表。数据类型为InquiryPriceResponse
        data = response.data
        # InquiryPriceResponse类重要属性如下所示
        # billingType参数询价的计费类型
        # cashBalance账户当前余额
        # originPrice询价总额
        # items询价明细,数据类型为list[InquirePriceItem]
        # InquirePriceItem类主要属性如下所示
        # resourceType资源类型
        # subResourceType 资源子类型
        # attr 资源属性。数据类型list[str]可能为空
        # size 资源大小。
        # originPrice资源子类询价结果

1.4. 创建云服务器

        # 实例化一个认证对象,入参需要传入智算云平台账户AccessKey和SecretAccessKey,此处还需注意密钥对的保密
        # 秘钥可前往智算云平台->个人中心->我的秘钥进行获取
        AccessKey:str = "abcd"
        SecretAccessKey:str = "abcd1234"
        clientProfile = ClientProfile(
            AccessKey,
            SecretAccessKey
        )
 
        # 实例化一个请求产品的client对象
        client = ECSClient(clientProfile)
        # 实例化一个请求对象,每个接口都会对应一个request对象
        request = RunInstancesRequest()
        # 待创建云服务器所属可用区
        request.zoneCode = "cn-zhongwei-a"
        # 待创建相同规格的云服务器个数
        request.count = 1
        # 待创建云服务器类型。详见InstanceType.vhostModel
        request.ecsModel = "ecs.cpu.calc.4c8g"
        # 待创建云服务器别名
        request.aliasName = "ecs-abcdefg5"
        # 待创建云服务器使用的镜像id
        request.imageUuid = "636bc998-9382-47e9-9573-6dbac34abda7"
        # 待创建云服务器系统盘类型
        request.rootDiskType = "HDD"
        # 待创建云服务器系统盘大小
        request.rootDiskSize = 20
        # 待创建云服务器计费类型
        request.billingType = BillingTypeEnum.BillingTypeEnum.PostPaid.name
        # 待创建云服务器带云盘信息
        ebs = EBSInput({"diskType": "HDD", "diskSize": "30"})
        request.ebs = [ebs]
        # 待创建云服务器带公网IP信息
        eip = EIPInput({"networkSize": 10, "networkType": "Flow"})
        request.eip = eip
        # 返回的response是一个RunInstancesResponse实例
        # 该实例有三个重要属性,分别是code、message和data
        response = client.RunInstances(request)
        # code属性表示本次请求返回的编码。该编码200表示正常,非200表示异常
        code = response.code
        # message属性表示本次请求返回的信息。如果code值为非200,则可通过message获得请求异常原因
        message = response.message
        # data属性为实际返回的云服务器信息列表。数据类型为RunInstancesResponseBody
        data = response.data
        # RunInstancesResponseBody类有多个重要属性
        # totalCount表示创建总数,和参数中的count保持一致
        # successCount表示成功创建个数
        # failedCount表示创建失败个数
        # failedMsgs表示失败原因,数据类型为list[str]
        # resourceUuids表示创建成功的云服务器id列表,数据类型为list[str]
        # jobUuids表示创建成功的云服务器对应的异步任务id列表,数据类型为list[str]

1.5. 启动云服务器

        # 实例化一个认证对象,入参需要传入智算云平台账户AccessKey和SecretAccessKey,此处还需注意密钥对的保密
        # 秘钥可前往智算云平台->个人中心->我的秘钥进行获取
        AccessKey:str = "abcd"
        SecretAccessKey:str = "abcd1234"
        clientProfile = ClientProfile(
            AccessKey,
            SecretAccessKey
        )
 
        # 实例化一个请求产品的client对象
        client = ECSClient(clientProfile)
        # 实例化一个请求对象,每个接口都会对应一个request对象
        request = StartInstancesRequest()
        # 待启动云服务器所属可用区
        request.zoneCode ="cn-zhongwei-a"
        # 待启动云服务器id
        request.ecsUuids = ["de5995e8-180d-4445-842f-1e3ab0d15d3a"]
        # 返回的response是一个StartInstancesResponse实例
        # 该实例有三个重要属性,分别是code、message和data
        response = client.StartInstances(request)
        # code属性表示本次请求返回的编码。该编码200表示正常,非200表示异常
        code = response.code
        # message属性表示本次请求返回的信息。如果code值为非200,则可通过message获得请求异常原因
        message = response.message
        # data属性为实际返回的异步任务信息列表。数据类型为list[Job]
        jobs = response.data
        # 您可以通过jobs[0].jobUuid的方式获得异步任务id
        # 通过jobUuid可以查询异步任务接口获取当前操作的状态

1.6. 关闭云服务器

stopType请参考StopInstances中的说明

stoppedMode请参考StopInstances中的说明

        # 实例化一个认证对象,入参需要传入智算云平台账户AccessKey和SecretAccessKey,此处还需注意密钥对的保密
        # 秘钥可前往智算云平台->个人中心->我的秘钥进行获取
        AccessKey:str = "abcd"
        SecretAccessKey:str = "abcd1234"
        clientProfile = ClientProfile(
            AccessKey,
            SecretAccessKey
        )
 
        # 实例化一个请求产品的client对象
        client = ECSClient(clientProfile)
        # 实例化一个请求对象,每个接口都会对应一个request对象
        request = StopInstancesRequest()
        # 待关闭云服务器所属可用区
        request.zoneCode ="cn-zhongwei-a"
        # 待关闭云服务器id
        request.ecsUuids = ["de5995e8-180d-4445-842f-1e3ab0d15d3a"]
        # 返回的response是一个StopInstancesResponse实例
        # 该实例有三个重要属性,分别是code、message和data
        response = client.StopInstances(request)
        # code属性表示本次请求返回的编码。该编码200表示正常,非200表示异常
        code = response.code
        # message属性表示本次请求返回的信息。如果code值为非200,则可通过message获得请求异常原因
        message = response.message
        # data属性为实际返回的异步任务信息列表。数据类型为list[Job]
        jobs = response.data
        # 您可以通过jobs[0].jobUuid的方式获得异步任务id
        # 通过jobUuid可以查询异步任务接口获取当前操作的状态

1.7. 重启云服务器

stopType请参考RebootInstances中的说明

        # 实例化一个认证对象,入参需要传入智算云平台账户AccessKey和SecretAccessKey,此处还需注意密钥对的保密
        # 秘钥可前往智算云平台->个人中心->我的秘钥进行获取
        AccessKey:str = "abcd"
        SecretAccessKey:str = "abcd1234"
        clientProfile = ClientProfile(
            AccessKey,
            SecretAccessKey
        )
 
        # 实例化一个请求产品的client对象
        client = ECSClient(clientProfile)
        # 实例化一个请求对象,每个接口都会对应一个request对象
        request = RebootInstancesRequest()
        # 待重启云服务器所属可用区
        request.zoneCode ="cn-zhongwei-a"
        # 待重启云服务器id信息
        request.ecsUuids = ["de5995e8-180d-4445-842f-1e3ab0d15d3a"]
        # 返回的response是一个RebootInstancesResponse实例
        # 该实例有三个重要属性,分别是code、message和data
        response = client.RebootInstances(request)
        # code属性表示本次请求返回的编码。该编码200表示正常,非200表示异常
        code = response.code
        # message属性表示本次请求返回的信息。如果code值为非200,则可通过message获得请求异常原因
        message = response.message
        # data属性为实际返回的异步任务信息列表。数据类型为list[Job]
        jobs = response.data
        # 您可以通过jobs[0].jobUuid的方式获得异步任务id
        # 通过jobUuid可以查询异步任务接口获取当前操作的状态

1.8. 续费云服务器

续费操作会默认把系统盘和云服务器一起续费,不用单独传入系统盘信息

        # 实例化一个认证对象,入参需要传入智算云平台账户AccessKey和SecretAccessKey,此处还需注意密钥对的保密
        # 秘钥可前往智算云平台->个人中心->我的秘钥进行获取
        AccessKey:str = "abcd"
        SecretAccessKey:str = "abcd1234"
        clientProfile = ClientProfile(
            AccessKey,
            SecretAccessKey
        )
 
        # 实例化一个请求产品的client对象
        client = ECSClient(clientProfile)
        # 实例化一个请求对象,每个接口都会对应一个request对象
        request = RenewInstancesRequest()
        # 待续费云服务器所属可用区
        request.zoneCode = "cn-zhongwei-a"
        # 待续费云服务器id信息
        request.ecsUuids = ["a5fd0143-0a6b-4825-b26a-142e2367c560"]
        # 待续费云服务器续费月数
        request.period = 1
        # 返回的response是一个RenewInstancesResponse实例
        # 该实例有两个重要属性,分别是code、message
        response = client.RenewInstances(request)
        # code属性表示本次请求返回的编码。该编码200表示正常,非200表示异常
        code = response.code
        # message属性表示本次请求返回的信息。如果code值为非200,则可通过message获得请求异常原因
        message = response.message

1.9. 删除云服务器

        # 实例化一个认证对象,入参需要传入智算云平台账户AccessKey和SecretAccessKey,此处还需注意密钥对的保密
        # 秘钥可前往智算云平台->个人中心->我的秘钥进行获取
        AccessKey:str = "abcd"
        SecretAccessKey:str = "abcd1234"
        clientProfile = ClientProfile(
            AccessKey,
            SecretAccessKey
        )
 
        # 实例化一个请求产品的client对象
        client = ECSClient(clientProfile)
        # 实例化一个请求对象,每个接口都会对应一个request对象
        request = DeleteInstancesRequest()
        # 待删除云服务器所属可用区
        request.zoneCode = "cn-zhongwei-a"
        # 待删除云服务器id信息
        request.ecsUuids = ["de5995e8-180d-4445-842f-1e3ab0d15d3a"]
        # 删除云服务器是否同时删除公网IP。True表示删除,Flase表示不删除
        request.deleteEip = True
        # 删除云服务器是否同时删除数据云盘。True表示删除,False表示不删除
        request.deleteEbs = True
        # 返回的response是一个DeleteInstancesResponse实例
        # 该实例有三个重要属性,分别是code、message和data
        response = client.DeleteInstance(request)
        # code属性表示本次请求返回的编码。该编码200表示正常,非200表示异常
        code = response.code
        # message属性表示本次请求返回的信息。如果code值为非200,则可通过message获得请求异常原因
        message = response.message
        # data属性为实际返回的异步任务信息列表。数据类型为list[Job]
        jobs = response.data
        # 您可以通过jobs[0].jobUuid的方式获得异步任务id
        # 通过jobUuid可以查询异步任务接口获取当前操作的状态

1.10. 查询云服务器列表

云服务器查询接口返回ECS信息,具体说明详见 ECS, 本页不再重复说明

        # 实例化一个认证对象,入参需要传入智算云平台账户AccessKey和SecretAccessKey,此处还需注意密钥对的保密
        # 秘钥可前往智算云平台->个人中心->我的秘钥进行获取
        AccessKey:str = "abcd"
        SecretAccessKey:str = "abcd1234"
        clientProfile = ClientProfile(
            AccessKey,
            SecretAccessKey
        )
 
        # 实例化一个请求产品的client对象
        client = ECSClient(clientProfile)
        # 实例化一个请求对象,每个接口都会对应一个request对象
        request = DescribeInstancesRequest()
        # 待查询列表使用公网IP过滤。该参数可选
        request.eip = "130.234.213.23"
        # 待查询列表使用内网IP过滤。该参数可选
        request.ip = "172.18.2.23"
        # 待查询列表使用云服务器id过滤。该参数可选
        request.ecsUuid = "a5fd0143-0a6b-4825-b26a-142e2367c560"
        # 待查询列表使用云服务器名称过滤。该参数可选
        request.aliasName = "ecs-pnwtykfs"
        # 分页页号,该参数可选。默认1
        request.pageNum = 1
        # 分页页大小,该参数可选。默认200
        request.pageSize = 200
        # 返回的response是一个DescribeInstancesResponse实例
        response = client.DescribeInstances(request)
        # code属性表示本次请求返回的编码。该编码200表示正常,非200表示异常
        code = response.code
        # message属性表示本次请求返回的信息。如果code值为非200,则可通过message获得请求异常原因
        message = response.message
        # data属性为实际返回的云服务器信息列表。数据类型为PageECSData
        pageDatas = response.data
        # pageNum当前页号
        # pageSize页大小
        pageNum = pageDatas.pageNum
        pageSize = pageDatas.pageSize
        # 总数据量
        total = pageDatas.total
        # rows表示返回的云服务器信息列表,数据类型为list[ECS]
        rows = pageDatas.rows