创建迁移任务
本文介绍如何通过SMC Java SDK调用CreateReplicationJob为迁移源创建一个迁移任务。
背景信息
您可以通过CreateReplicationJob接口为迁移源创建一个迁移任务,详情请参见CreateReplicationJob
说明
- 您只能为在线(Available)状态的迁移源创建迁移任务。
- 每个迁移源仅能关联一个未完成状态的迁移任务。未完成状态包括Ready(未开始)、Running(运行中)、Stopped(已暂停)、Waiting(等待中)、InError(出错)和Expired(已过期)。
- 每个阿里云账号可创建100个迁移任务。
- 迁移目标类型为镜像时,需指定ImageName、SystemDiskSize、DataDisk参数。
- 使用VPC内网迁移时,VSwitchId参数为必填,VpcId参数为可选。
代码示例
以下代码用于创建一个已指定VPC、目标ECS实例系统盘大小为80 GiB的迁移任务,并且为迁移任务绑定usage:production
标签:
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.smc.model.v20190601.CreateReplicationJobRequest;
import com.aliyuncs.smc.model.v20190601.CreateReplicationJobResponse;
import com.google.gson.Gson;
import java.util.ArrayList;
import java.util.List;
public class CreateReplicationJob {
public static void main(String[] args) {
//初始化AcsClient实例,设置地域ID及您的AccessKey信息
DefaultProfile profile = DefaultProfile.getProfile("<region-Id>", "<accessKeyId>", "<accessSecret>");
IAcsClient client = new DefaultAcsClient(profile);
//创建API请求,并设置参数
CreateReplicationJobRequest request = new CreateReplicationJobRequest();
//迁移源ID
request.setSourceId("s-bp152mkfswviw7sd****");//专有网络VPC的ID
request.setVpcId("vpc-bp1vwnn14rqpyiczj****");
//指定VPC下的交换机ID
request.setVSwitchId("vsw-bp1ddbrxdlrcbim46****");
//目标阿里云服务器ECS的系统盘大小,单位为GiB
request.setSystemDiskSize(80);
//创建一次性迁移任务还是增量迁移任务
request.setRunOnce(true);
//迁移任务的标签键值对
List<CreateReplicationJobRequest.Tag> tags = new ArrayList<>();
CreateReplicationJobRequest.Tag tag = new CreateReplicationJobRequest.Tag();
tag.setKey("usage");
tag.setValue("production");
tags.add(tag);
request.setTags(tags);
//迁移任务名
//request.setName("MySourceServer");
//迁移任务描述
//request.setDescription("This_is_a_migration_task");
//迁移任务的执行时间
//request.setScheduledStartTime("2019-06-04T13:35:00Z");
//迁移任务的过期时间
//request.setValidTime("2019-06-04T13:35:00Z");
//目标实例ID
//request.setInstanceId("i-bp12uyz75shn6jsp****");
//迁移任务交付的目标阿里云镜像名称
//request.setImageName("smc-image");
//保证请求幂等性,您可以从客户端生成一个不超过64个ASCII字符的参数值,并将值赋予ClientToken
//request.setClientToken(UUID.randomUUID().toString());
//增量迁移任务运行的时间间隔
//request.setFrequency(12);
//目标阿里云服务器ECS的数据盘顺序和大小
//List<CreateReplicationJobRequest.DataDisk> datadisks = new ArrayList<>();
//CreateReplicationJobRequest.DataDisk datadisk = new CreateReplicationJobRequest.DataDisk();
//目标阿里云服务器ECS的数据盘顺序
//datadisk.setIndex(1);
//目标阿里云服务器ECS的数据盘大小
//datadisk.setSize(100);
//datadisks.add(datadisk);
//request.setDataDisks(datadisks);
//增量迁移任务默认保留的最大镜像数
//request.setMaxNumberOfImageToKeep(10);
//数据传输网络模式
//request.setNetMode(0);
//复制驱动器的参数信息
//request.setReplicationParameters("{\"bandwidth_limit\":0,\"compress_level\":1,\"checksum\":true}");
//迁移任务交付的目标类型
//request.setTargetType("Image");
//发送请求获取返回值或处理异常
try {
CreateReplicationJobResponse response = client.getAcsResponse(request);
System.out.println(new Gson().toJson(response));
} catch (ServerException e) {
e.printStackTrace();
} catch (ClientException e) {
e.printStackTrace();
}
}
}
执行结果
{
"RequestId":"C8B26B44-0189-443E-9816-D951F59623A9",
"JobId":"j-bp152mkfswviwbqj****"
}
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。
评论