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

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

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

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

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

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

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

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

1.1. 云服务器密码加密

        String hexPassword = PasswordUtils.toHex("DaQ2mUt1i4d.dcce")
        System.out.println(hexPassword)

1.2. 云服务器密码解密

        String rawPassword = PasswordUtils.fromHex("3165666e50492e67464e616c49614155");
        System.out.println(rawPassword);

1.3. 创建云服务器询价

        // 实例化一个认证对象,入参需要传入智算云平台账户AccessKey和SecretAccessKey,此处还需注意密钥对的保密
        // 秘钥可前往智算云平台->个人中心->我的秘钥进行获取
        String AccessKey = "abcd";
        String SecretAccessKey = "abcd1234";
        ClientProfile clientProfile = new ClientProfile(AccessKey,SecretAccessKey);
        
        // 实例化一个请求产品的client对象
        ECSClient client = new ECSClient(clientProfile);
        // 实例化一个请求对象,每个接口都会对应一个request对象
        RunInstancesRequest runInstancesRequest = new RunInstancesRequest();
        // 待创建云服务器所属可用区
        runInstancesRequest.setZoneCode("cn-zhongwei-a");
        // 待创建相同规格的云服务器个数
        runInstancesRequest.setCount(1);
        // 待创建云服务器类型。详见InstanceType.vhostModel
        runInstancesRequest.setEcsModel("ecs.cpu.calc.4c8g");
        // 待创建云服务器使用的镜像id
        runInstancesRequest.setImageUuid("636bc998-9382-47e9-9573-6dbac34abda7");
        // 待创建云服务器系统盘类型
        runInstancesRequest.setRootDiskType("HDD");
        // 待创建云服务器系统盘大小
        runInstancesRequest.setRootDiskSize(20);
        // 待创建云服务器计费类型
        runInstancesRequest.setBillingType(BillingTypeEnum.PostPaid);
        // 待创建云服务器带云盘信息
        EBSInput ebsInput = new EBSInput();
        ebsInput.setDiskType("HDD");
        ebsInput.setDiskSize(20);
        runInstancesRequest.setEbs(Collections.singletonList(ebsInput));
        // 待创建云服务器带公网IP信息
        EIPInput eipInput = new EIPInput();
        eipInput.setNetworkSize(10);
        eipInput.setNetworkType("Flow");
        runInstancesRequest.setEip(eipInput);
 
        // 返回的response是一个AICloudResponse实例
        // 该实例有三个重要属性,分别是code、message和data
        AICloudResponse<InquiryPriceResponse> inquiryPriceResponse = client.InquirePriceRunInstances(runInstancesRequest);
 
        // code属性表示本次请求返回的编码。该编码200表示正常,非200表示异常
        int code = inquiryPriceResponse.getCode();
        // message属性表示本次请求返回的信息。如果code值为非200,则可通过message获得请求异常原因
        String message = inquiryPriceResponse.getMessage();
        // data属性为实际返回的云服务器信息列表。数据类型为InquiryPriceResponse
        InquiryPriceResponse data = inquiryPriceResponse.getData();
        // InquiryPriceResponse类重要属性如下所示
        // billingType参数询价的计费类型
        // cashBalance账户当前余额
        // originPrice询价总额
        // items询价明细,数据类型为list[InquirePriceItem]
        // InquirePriceItem类主要属性如下所示
        // resourceType资源类型
        // subResourceType 资源子类型
        // attr 资源属性。数据类型List[String],可能为空
        // size 资源大小。
        // originPrice资源子类询价结果

1.4. 创建云服务器

        // 实例化一个认证对象,入参需要传入智算云平台账户AccessKey和SecretAccessKey,此处还需注意密钥对的保密
        // 秘钥可前往智算云平台->个人中心->我的秘钥进行获取
        String AccessKey = "abcd";
        String SecretAccessKey = "abcd1234";
        ClientProfile clientProfile = new ClientProfile(AccessKey,SecretAccessKey);
        
        // 实例化一个请求产品的client对象
        ECSClient client = new ECSClient(clientProfile);
        // 实例化一个请求对象,每个接口都会对应一个request对象
        RunInstancesRequest runInstancesRequest = new RunInstancesRequest();
        // 待创建云服务器所属可用区
        runInstancesRequest.setZoneCode("cn-zhongwei-a");
        // 待创建相同规格的云服务器个数
        runInstancesRequest.setCount(1);
        // 待创建云服务器类型。详见InstanceType.vhostModel
        runInstancesRequest.setEcsModel("ecs.cpu.calc.4c8g");
        // 待创建云服务器别名
        runInstancesRequest.setAliasName("ecs-abcdefg");
        // 待创建云服务器使用的镜像id
        runInstancesRequest.setImageUuid("636bc998-9382-47e9-9573-6dbac34abda7");
        // 待创建云服务器系统盘类型
        runInstancesRequest.setRootDiskType("HDD");
        // 待创建云服务器系统盘大小
        runInstancesRequest.setRootDiskSize(20);
        // 待创建云服务器计费类型
        runInstancesRequest.setBillingType(BillingTypeEnum.PostPaid);
        // 待创建云服务器带云盘信息
        EBSInput ebsInput = new EBSInput();
        ebsInput.setDiskType("HDD");
        ebsInput.setDiskSize(20);
        runInstancesRequest.setEbs(Collections.singletonList(ebsInput));
        // 待创建云服务器带公网IP信息
        EIPInput eipInput = new EIPInput();
        eipInput.setNetworkSize(10);
        eipInput.setNetworkType("Flow");
        runInstancesRequest.setEip(eipInput);
 
        // 返回的response是一个AICloudResponse实例
        // 该实例有三个重要属性,分别是code、message和data
        AICloudResponse<List<Job>> runInstanceResponse = client.RunInstances(runInstancesRequest);
        
        // code属性表示本次请求返回的编码。该编码200表示正常,非200表示异常
        int code = runInstanceResponse.getCode();
        // message属性表示本次请求返回的信息。如果code值为非200,则可通过message获得请求异常原因
        String message = runInstanceResponse.getMessage();
        // data属性为实际返回的云服务器信息列表。数据类型为RunInstancesResponse
        List<Job> jobs = runInstanceResponse.getData();
        // 您可以通过jobs.get(0).getJobUuid()的方式获得异步任务id
        // 通过jobUuid可以查询异步任务接口获取当前操作的状态

1.5. 启动云服务器

        // 实例化一个认证对象,入参需要传入智算云平台账户AccessKey和SecretAccessKey,此处还需注意密钥对的保密
        // 秘钥可前往智算云平台->个人中心->我的秘钥进行获取
        String AccessKey = "abcd";
        String SecretAccessKey = "abcd1234";
 
        ClientProfile clientProfile = new ClientProfile(AccessKey,SecretAccessKey);
 
        // 实例化一个请求产品的client对象
        ECSClient client = new ECSClient(clientProfile);
 
        // 实例化一个请求对象,每个接口都会对应一个request对象
        StartInstancesRequest startInstancesRequest = new StartInstancesRequest();
        // 待启动云服务器所属可用区
        startInstancesRequest.setZoneCode("cn-zhongwei-a");
        // 待启动云服务器id
        startInstancesRequest.setEcsUuids(Collections.singletonList("eb4fc7cd-20ca-45be-ae7e-2eaba7bb0526"));
        // 返回的response是一个AICloudResponse实例
        // 该实例有三个重要属性,分别是code、message和data
        AICloudResponse<List<Job>> startResponse = client.StartInstances(startInstancesRequest);
 
        // code属性表示本次请求返回的编码。该编码200表示正常,非200表示异常
        int code = startResponse.getCode();
        // message属性表示本次请求返回的信息。如果code值为非200,则可通过message获得请求异常原因
        String message = startResponse.getMessage();
        // data属性为实际返回的异步任务信息列表。数据类型为List[Job]
        List<Job> jobs = startResponse.getData();
        // 您可以通过jobs.get(0).getJobUuid()的方式获得异步任务id
        // 通过jobUuid可以查询异步任务接口获取当前操作的状态

1.6. 关闭云服务器

stopType请参考StopInstances中的说明

stoppedMode请参考StopInstances中的说明

        // 实例化一个认证对象,入参需要传入智算云平台账户AccessKey和SecretAccessKey,此处还需注意密钥对的保密
        // 秘钥可前往智算云平台->个人中心->我的秘钥进行获取
        String AccessKey = "abcd";
        String SecretAccessKey = "abcd1234";
 
        ClientProfile clientProfile = new ClientProfile(AccessKey,SecretAccessKey);
 
        // 实例化一个请求产品的client对象
        ECSClient client = new ECSClient(clientProfile);
        // 实例化一个请求对象,每个接口都会对应一个request对象
        StopInstancesRequest stopInstancesRequest = new StopInstancesRequest();
        // 待关闭云服务器所属可用区
        stopInstancesRequest.setZoneCode("cn-zhongwei-a");
        // 待关闭云服务器id
        stopInstancesRequest.setEcsUuids(Collections.singletonList("eb4fc7cd-20ca-45be-ae7e-2eaba7bb0526"));
        // 返回的response是一个AICloudResponse实例
        // 该实例有三个重要属性,分别是code、message和data
        AICloudResponse<List<Job>> stopInstanceResponse = client.StopInstances(stopInstancesRequest);
 
        // code属性表示本次请求返回的编码。该编码200表示正常,非200表示异常
        int code = stopInstanceResponse.getCode();
        // message属性表示本次请求返回的信息。如果code值为非200,则可通过message获得请求异常原因
        String message = stopInstanceResponse.getMessage();
        // data属性为实际返回的异步任务信息列表。数据类型为List[Job]
        List<Job> jobs = stopInstanceResponse.getData();
        // 您可以通过jobs.get(0).getJobUuid()的方式获得异步任务id
        // 通过jobUuid可以查询异步任务接口获取当前操作的状态

1.7. 重启云服务器

stopType请参考RebootInstances中的说明

        // 实例化一个认证对象,入参需要传入智算云平台账户AccessKey和SecretAccessKey,此处还需注意密钥对的保密
        // 秘钥可前往智算云平台->个人中心->我的秘钥进行获取
        String AccessKey = "abcd";
        String SecretAccessKey = "abcd1234";
 
        ClientProfile clientProfile = new ClientProfile(AccessKey,SecretAccessKey);
        // 实例化一个请求产品的client对象
        ECSClient client = new ECSClient(clientProfile);
 
        // 实例化一个请求对象,每个接口都会对应一个request对象
	    RebootInstancesRequest rebootInstancesRequest = new RebootInstancesRequest();
        // 待重启云服务器所属可用区
        rebootInstancesRequest.setZoneCode("cn-zhongwei-a");
        // 待重启云服务器id信息
        rebootInstancesRequest.setEcsUuids(Collections.singletonList("eb4fc7cd-20ca-45be-ae7e-2eaba7bb0526"));
        // 返回的response是一个AICloudResponse实例
        // 该实例有三个重要属性,分别是code、message和data
        AICloudResponse<List<Job>> rebootInstancesResponse = client.RebootInstances(rebootInstancesRequest);
 
        // code属性表示本次请求返回的编码。该编码200表示正常,非200表示异常
        int code = rebootInstancesResponse.getCode();
        // message属性表示本次请求返回的信息。如果code值为非200,则可通过message获得请求异常原因
        String message = rebootInstancesResponse.getMessage();
        // data属性为实际返回的异步任务信息列表。数据类型为List[Job]
        List<Job> jobs = rebootInstancesResponse.getData();
        // 您可以通过jobs.get(0).getJobUuid()的方式获得异步任务id
        // 通过jobUuid可以查询异步任务接口获取当前操作的状态

1.8. 续费云服务器

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

        // 实例化一个认证对象,入参需要传入智算云平台账户AccessKey和SecretAccessKey,此处还需注意密钥对的保密
        // 秘钥可前往智算云平台->个人中心->我的秘钥进行获取
        String AccessKey = "abcd";
        String SecretAccessKey = "abcd1234";
 
        ClientProfile clientProfile = new ClientProfile(AccessKey,SecretAccessKey);
 
        // 实例化一个请求产品的client对象
        ECSClient client = new ECSClient(clientProfile);
        // 实例化一个请求对象,每个接口都会对应一个request对象
        RenewInstancesRequest renewInstancesRequest = new RenewInstancesRequest();
        // 待续费云服务器所属可用区
        renewInstancesRequest.setZoneCode("cn-zhongwei-a");
        // 待续费云服务器id信息
        renewInstancesRequest.setEcsUuids(Collections.singletonList("e7a8e846-481e-4fd7-b98e-bde189eeb7ab"));
        // 待续费云服务器续费月数
        renewInstancesRequest.setPeriod(1);
        // 返回的response是一个AICloudResponse实例
        // 该实例有两个重要属性,分别是code、message
        AICloudResponse<String> renewInstanceResponse = client.RenewInstances(renewInstancesRequest);
 
        // code属性表示本次请求返回的编码。该编码200表示正常,非200表示异常
        int code = renewInstanceResponse.getCode();
        // message属性表示本次请求返回的信息。如果code值为非200,则可通过message获得请求异常原因
        String message = renewInstanceResponse.getMessage();

1.9. 删除云服务器

        // 实例化一个认证对象,入参需要传入智算云平台账户AccessKey和SecretAccessKey,此处还需注意密钥对的保密
        // 秘钥可前往智算云平台->个人中心->我的秘钥进行获取
        String AccessKey = "abcd";
        String SecretAccessKey = "abcd1234";
        ClientProfile clientProfile = new ClientProfile(AccessKey,SecretAccessKey);
 
        // 实例化一个请求产品的client对象
        ECSClient client = new ECSClient(clientProfile);
 
        // 实例化一个请求对象,每个接口都会对应一个request对象
        DeleteInstancesRequest deleteInstancesRequest = new DeleteInstancesRequest();
        // 待删除云服务器所属可用区
        deleteInstancesRequest.setZoneCode("cn-zhongwei-a");
        // 待删除云服务器id信息
        deleteInstancesRequest.setEcsUuids(Collections.singletonList("a7193a7b-a183-484d-bb6a-98d129c3dba7"));
        // 删除云服务器是否同时删除公网IP。true表示删除,flase表示不删除卸载
        deleteInstancesRequest.setDeleteEip(true);
        // 删除云服务器是否同时删除数据云盘。True表示删除,False表示不删除卸载
        deleteInstancesRequest.setDeleteEbs(true);
        // 返回的response是一个AICloudResponse实例
        // 该实例有三个重要属性,分别是code、message和data
        AICloudResponse<List<Job>> deleteInstanceResponse = client.DeleteInstances(deleteInstancesRequest);
 
        // code属性表示本次请求返回的编码。该编码200表示正常,非200表示异常
        int code = deleteInstanceResponse.getCode();
        // message属性表示本次请求返回的信息。如果code值为非200,则可通过message获得请求异常原因
        String message = deleteInstanceResponse.getMessage();
        // data属性为实际返回的异步任务信息列表。数据类型为List[Job]
        List<Job> jobs = deleteInstanceResponse.getData();
        // 您可以通过jobs.get(0).getJobUuid()的方式获得异步任务id
        // 通过jobUuid可以查询异步任务接口获取当前操作的状态

1.10. 查询云服务器列表

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

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