镜像

创建自定义镜像

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

// 通过实例创建自定义镜像
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());
}

// 通过快照创建自定义镜像
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);

}