云服务器BCC

    镜像

    创建自定义镜像

    支持通过实例创建和通过快照创建两种方式。参考以下代码可以创建一个自定义镜像:

    // 通过实例创建自定义镜像
    public static void createImageFromInstance(BccClient bccClient, String imageName, String instanceId) {
        CreateImageRequest createImageRequest = new CreateImageRequest();
        // 设置自定义镜像名称
        createImageRequest.setImageName(imageName);
        // 设置BCC实例id
        createImageRequest.setInstanceId(instanceId);
        System.out.println(bccClient.createImage(createImageRequest).getImageId());
    }
    
    // 通过实例创建自定义镜像,并且设置是否关联实例CDS磁盘
    public static void createImageFromInstanceWithRelateCds(BccClient bccClient, String imageName, String instanceId, boolean relateCds) {
        CreateImageRequest createImageRequest = new CreateImageRequest();
        // 设置自定义镜像名称
        createImageRequest.setImageName(imageName);
        // 设置BCC实例id
        createImageRequest.setInstanceId(instanceId);
        // 设置自定义镜像是否关联实例CDS磁盘,relateCds默认为false,为true时表示关联
        createImageRequest.setRelateCds(relateCds);
        System.out.println(bccClient.createImage(createImageRequest).getImageId());
    }
    
    // 通过快照创建自定义镜像
    public static void createImageFromSnapshot(BccClient bccClient, String imageName, String snapshotId) {
        CreateImageRequest createImageRequest = new CreateImageRequest();
        // 设置自定义镜像名称
        createImageRequest.setImageName(imageName);
        // 设置快照id
        createImageRequest.setSnapshotId(snapshotId);
        System.out.println(bccClient.createImage(createImageRequest).getImageId());
    }

    注意,创建自定义镜像,默认配额20个每账号。

    查询镜像列表

    使用以下代码可以查询有权限的镜像列表:

    public static void listImage(BccClient bccClient, String imageType) {
        ListImagesRequest listImagesRequest = new ListImagesRequest();
        // 设置分页标志
        listImagesRequest.setMarker(imageId);
        // 设置分页返回数据大小
        listImagesRequest.setMaxKeys(maxKey);
        // 设置筛选的镜像类型
        listImagesRequest.setImageType(imageType);
    
        ListImagesResponse listImagesResponse = bccClient.listImages();
    
        for (ImageModel imageModel : listImagesResponse.getImages()) {
            System.out.println(imageModel.getId());
        }
    }

    具体的镜像类型可详细参考BCC API文档查询镜像列表

    查询镜像详情

    以下代码可以查询镜像详细信息:

    public static void getImage(BccClient bccClient, String imageId) {
        GetImageResponse getImageResponse = bccClient.getImage(imageId);
        System.out.println(getImageResponse.getImage().getName());
    }

    删除自定义镜像

    以下代码可以删除一个自定义镜像:

    public static void deleteImage(BccClient bccClient, String imageId) {
        bccClient.deleteImage(imageId);
    }

    跨区域复制自定义镜像

    用于用户跨区域复制自定义镜像,仅限自定义镜像,系统镜像和服务集成镜像不能复制

    regions如北京"bj",广州"gz",苏州"su",可多选:

    public static void remoteCopyImage(BccClient bccClient, String destImageId, String imageName, ArrayList<String> regions) {
    
        RemoteCopyImageRequest remoteCopyImageRequest = new RemoteCopyImageRequest();
    
        // 被复制镜像ID
    
        remoteCopyImageRequest.setImageId(destImageId);
    
        //设置镜像名称
    
        remoteCopyImageRequest.setname(imageName);
    
        // 目的regionId
    
        remoteCopyImageRequest.setDestRegion(regions);
    
        bccClient.remoteCopyImage(remoteCopyImageRequest);
    
    }

    取消跨区域复制自定义镜像

    用于取消跨区域复制自定义镜像,仅限自定义镜像,系统镜像和服务集成镜像不能复制:

    public static void cancelRemoteCopyImage(BccClient bccClient, String imageId) {
    
        // 待取消复制的镜像ID
    
        bccClient.cancelRemoteCopyImage(destImageId);
    
    }

    共享自定义镜像

    用于共享用户自己的指定的自定义镜像,仅限自定义镜像,系统镜像和服务集成镜像不能共享:

    public static void shareImage(BccClient bccClient, String accountId, String imageId) {
    
        ShareImageRequest shareImageRequest = new ShareImageRequest();
    
        // 待共享的用户ID
    
        shareImageRequest.setAccountId(accountId);
    
        // 待共享镜像ID
    
        shareImageRequest.setImageId(imageId);
    
        bccClient.shareImage(shareImageRequest);
    
    }

    取消共享自定义镜像

    用于取消共享用户自己的指定的自定义镜像:

    public static void unShareImage(BccClient bccClient, String accountId, String imageId) {
    
        UnShareImageRequest unShareImageRequest = new UnShareImageRequest();
    
        // 待取消共享用户ID
    
        unShareImageRequest.setAccountId(accountId);
    
        // 待取消共享镜像ID
    
        unShareImageRequest.setImageId(imageId);
    
        bccClient.unShareImage(unShareImageRequest);
    
    }

    查询镜像已共享用户列表

    用于查询镜像已共享的用户列表:

    public static void listSharedUser(BccClient bccClient, String ImageId) {
    
        ListSharedUserResponse listSharedUserResponse = bccClient.listSharedUser(ImageId);
    
    }

    根据实例短ID批量查询OS信息(新增)

    用于根据实例短id批量查询OS信息:

    public static void listOs(BccClient bccClient) {
    
        ListOsRequest listOsRequest = new ListOsRequest();
    
        List<String> ids = new ArrayList<String>();
    
        //设置需要查询的实例ID
    
        ids.add(instanceId);
    
        listOsRequest.setInstanceIds(ids);
    
        ListOsResponse listOsResponse = bccClient.listOs(listOsRequest);
    
    }
    上一篇
    磁盘
    下一篇
    快照