CreateReplicationJob
调用CreateReplicationJob为迁移源创建一个迁移任务。
接口说明
- 您只能为在线(Available)状态的迁移源创建迁移任务。
- 每个迁移源仅能关联一个未完成状态的迁移任务。未完成状态包括Ready(未开始)、Running(运行中)、Stopped(已暂停)、Waiting(等待中)、InError(出错)和Expired(已过期)。
- 每个阿里云账号可创建1000个迁移任务。
- 迁移目标类型为镜像时,需指定ImageName、SystemDiskSize、DataDisk参数。
- 使用VPC内网迁移时,VSwitchId参数为必填,VpcId参数为可选。
- 支持迁移源的迁移目标为Docker容器镜像,实现低成本容器化应用迁移。
调试
您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。
请求参数
|
名称 |
类型 |
是否必选 |
示例值 |
描述 |
| Action | String | 是 | CreateReplicationJob | 系统规定参数。取值:CreateReplicationJob。 |
| RegionId | String | 是 | cn-hangzhou | 迁移源要迁入的目标阿里云地域ID。 例如,您需要迁移源服务器至杭州,则相应的阿里云地域ID为 |
| ClientToken | String | 否 | 123e4567-e89b-12d3-a456-426655440000 | 保证请求幂等性。您可以从客户端生成一个不超过64个ASCII字符的参数值,并将值赋予ClientToken,保证重试请求的幂等性。更多详情,请参见如何保证幂等性。 |
| Name | String | 否 | testMigrationTaskName | 迁移任务名。迁移任务的名称需满足以下要求:
|
| Description | String | 否 | This_is_a_migration_task | 迁移任务描述。 长度应为2~128个英文或中文字符,必须以大小字母或中文开头,不能以 |
| SourceId | String | 是 | s-bp1e2fsl57knvuug**** | 迁移源ID。 |
| TargetType | String | 否 | Image | 迁移任务交付的目标类型。取值范围:
|
| ScheduledStartTime | String | 否 | 2019-06-04T13:35:00Z | 迁移任务的执行时间。该参数值的设置需满足以下要求:
说明 如果该参数值为空,则SMC不会启动迁移任务,需要您调用StartReplicationJob启动任务。 |
| ValidTime | String | 否 | 2019-06-04T13:35:00Z | 迁移任务的过期时间。取值范围:迁移任务创建时间+7天~迁移任务创建时间+90天。
默认值:迁移任务创建时间+30天(表示迁移任务的默认有效期为创建后30天)。 |
| ImageName | String | 否 | testAliCloudImageName | 迁移任务交付的目标阿里云镜像名称。目标镜像的名称需满足以下要求:
说明 迁移任务运行过程中,若当前地域已经存在相同名称的镜像,则系统默认给镜像名称添加迁移任务ID(JobId)作为后缀,如:ImageName_j-2zexxxxxxxxxxxxx。 |
| InstanceId | String | 否 | i-bp1f1dvfto1sigz5**** | 目标实例ID。 |
| SystemDiskSize | Integer | 否 | 80 | 目标阿里云服务器ECS的系统盘大小,单位为GiB。取值范围:20~2048。 说明 该参数取值需要大于迁移源系统盘实际占用大小,例如,源系统盘大小为500 GiB,实际占用100 GiB,则该参数取值需大于100 GiB。 |
| VpcId | String | 否 | vpc-bp1vwnn14rqpyiczj**** | 已配置高速通道服务或者VPN网关的VPC ID。 |
| VSwitchId | String | 否 | vsw-bp1ddbrxdlrcbim46**** | 指定VPC下的虚拟交换机ID。 使用VPC内网迁移时,该参数为必填参数。 |
| ReplicationParameters | String | 否 | {"bandwidth_limit":0,"compress_level":1,"checksum":true} | 复制驱动器的参数信息。参数信息为JSON格式键值对,键值固定。最大长度:2048个字符。 复制驱动器是指,复制源服务器数据到中转实例时所使用的工具。不同复制驱动器支持参数可能不同。复制驱动器SMT目前支持以下参数:
复制驱动器的取值,请参见DescribeSourceServers的返回参数 |
| NetMode | Integer | 否 | 0 | 数据传输网络模式。取值范围:
默认值:0。 |
| RunOnce | Boolean | 否 | true | 创建一次性迁移任务还是增量迁移任务。取值范围:
说明 该参数值只能在创建迁移任务时指定。参数值一经指定,则无法更改。 |
| Frequency | Integer | 否 | 12 | 增量迁移任务运行的时间间隔,单位:小时。取值范围:1~168。
默认值:无。 |
| MaxNumberOfImageToKeep | Integer | 否 | 10 | 增量迁移任务默认保留的最大镜像数。取值范围:1~10。
默认值:无。 |
| InstanceType | String | 否 | ecs.c6.large | 中转实例的实例规格。 调用DescribeInstanceTypes可查询云服务器ECS提供的实例规格。
|
| LaunchTemplateId | String | 否 | lt-bp16jovvln1cgaaq**** | 实例启动模板ID。 |
| LaunchTemplateVersion | String | 否 | 1 | 实例启动模板的版本。 |
| InstanceRamRole | String | 否 | SMCAdmin | 实例RAM角色名称。 |
| ContainerNamespace | String | 否 | testNamespace | Docker的命名空间。关于Docker容器镜像详情请参见容器镜像服务。 |
| ContainerRepository | String | 否 | testRepository | Docker的镜像仓库。关于Docker容器镜像详情请参见容器镜像服务。 |
| ContainerTag | String | 否 | CentOS:v1 | Docker的镜像标签。关于Docker容器镜像详情请参见容器镜像服务。 |
| LicenseType | String | 否 | BYOL | 许可证类型。取值范围:
更多信息,请参见SMC FAQ。 |
| DataDisk.N.Index | Integer | 否 | 1 | 目标阿里云服务器ECS的数据盘顺序。初始值为1。取值范围:1~16 说明 您只能为迁移源中存在的数据盘创建目标数据盘。 |
| DataDisk.N.Part.N.SizeBytes | Long | 否 | 254803968 | 目标数据盘N分区N的大小。单位:Byte。默认为源数据盘分区大小。 说明
|
| DataDisk.N.Part.N.Block | Boolean | 否 | true | 数据盘N分区N是否开启块复制。取值范围:
默认值:true。 |
| DataDisk.N.Part.N.Device | String | 否 | 0_1 | 目标数据盘N分区N对应的分区设备标识。N的实际取值请参考迁移源的分区设备标识。 说明 当 DataDisk.N.Part.N.SizeBytes不为空时,该参数也不能为空。 |
| DataDisk.N.Size | Integer | 否 | 100 | 目标阿里云服务器ECS的数据盘大小,单位为GiB。取值范围:20~32768。 说明 该参数取值需要大于迁移源数据盘实际占用大小。例如,源数据盘大小为500 GiB,实际占用100 GiB,则该参数取值需大于100 GiB。 |
| Tag.N.Key | String | 否 | TestKey | 迁移任务的标签键。N的取值范围:1~20 一旦传入该值,则不允许为空字符串。最多支持128个字符,不能以 |
| Tag.N.Value | String | 否 | TestValue | 迁移任务的标签值。N的取值范围:1~20。 一旦传入该值,可以为空字符串。最多支持128个字符,不能以 |
| SystemDiskPart.N.SizeBytes | Long | 否 | 254803968 | 系统盘分区N大小。单位:Byte。默认为源系统盘分区大小。 说明
|
| SystemDiskPart.N.Block | Boolean | 否 | true | 系统盘分区N是否开启块复制。取值范围:
默认值:true。 |
| SystemDiskPart.N.Device | String | 否 | 0_1 | 目标系统盘分区N设备标识。N的实际取值请参考迁移源的分区设备标识。 说明 当 SystemDiskPart.N.SizeBytes不为空时,该参数也不能为空。 |
| JobType | Integer | 否 | 0 | 迁移任务的类型。取值范围:
|
| ResourceGroupId | String | 否 | rg-acfmw3ty5y7**** | 资源组ID。 |
返回数据
名称 |
类型 |
示例值 |
描述 |
| RequestId | String | C8B26B44-0189-443E-9816-D951F59623A9 | 请求ID。 |
| JobId | String | j-bp17bclvg344jlyt**** | 迁移任务ID。 |
示例
请求示例
http(s)://smc.aliyuncs.com/?Action=CreateReplicationJob
&RegionId=cn-hangzhou
&ClientToken=123e4567-e89b-12d3-a456-426655440000
&Name=testMigrationTaskName
&Description=This_is_a_migration_task
&SourceId=s-bp1e2fsl57knvuug****
&TargetType=Image
&ScheduledStartTime=2019-06-04T13:35:00Z
&ValidTime=2019-06-04T13:35:00Z
&ImageName=testAliCloudImageName
&InstanceId=i-bp1f1dvfto1sigz5****
&SystemDiskSize=80
&VpcId=vpc-bp1vwnn14rqpyiczj****
&VSwitchId=vsw-bp1ddbrxdlrcbim46****
&ReplicationParameters={"bandwidth_limit":0,"compress_level":1,"checksum":true}
&NetMode=0
&RunOnce=true
&Frequency=12
&MaxNumberOfImageToKeep=10
&InstanceType=ecs.c6.large
&LaunchTemplateId=lt-bp16jovvln1cgaaq****
&LaunchTemplateVersion=1
&InstanceRamRole=SMCAdmin
&ContainerNamespace=testNamespace
&ContainerRepository=testRepository
&ContainerTag=CentOS:v1
&LicenseType=BYOL
&DataDisk=[{"Index":1,"Part":[{"SizeBytes":254803968,"Block":true,"Device":"0_1"}],"Size":100}]
&Tag=[{"Key":"TestKey","Value":"TestValue"}]
&SystemDiskPart=[{"SizeBytes":254803968,"Block":true,"Device":"0_1"}]
&JobType=0
&ResourceGroupId=rg-acfmw3ty5y7****
&公共请求参数
正常返回示例
XML格式
HTTP/1.1 200 OK
Content-Type:application/xml
<CreateReplicationJobResponse>
<RequestId>C8B26B44-0189-443E-9816-D951F59623A9</RequestId>
<JobId>j-bp17bclvg344jlyt****</JobId>
</CreateReplicationJobResponse>
JSON格式
HTTP/1.1 200 OK
Content-Type:application/json
{
"RequestId" : "C8B26B44-0189-443E-9816-D951F59623A9",
"JobId" : "j-bp17bclvg344jlyt****"
}
错误码
|
HttpCode |
错误码 |
错误信息 |
描述 |
| 400 | ReplicationJobDataDiskIndex.Invalid | The specified replication job contains data disk index not found in source server. | 迁移任务包含的数据盘索引在迁移源中不存在。 |
| 400 | VSwitchIdVpcId.Mismatch | The specified VSwitchId and VpcId does not match. | 指定的VSwitchId和VpcId不匹配。 |
| 400 | InvalidSecurityGroupId.IncorrectNetworkType | The network type of the specified security group does not support this action. | 安全组网络类型不支持该操作,请检查安全组网络类型。 |
| 400 | InvalidSecurityGroupId.VPCMismatch | The specified security group and the specified virtual switch are not in the same VPC. | 指定的安全组和交换机不在一个专有网络。 |
| 400 | QuotaExceeded.ReplicationJob | The maximum number of replication jobs is exceeded. Please submit a ticket to raise the quota. | 迁移任务的数量已超过最大允许值,请提交工单。 |
| 400 | ReplicationJobName.Duplicate | The specified replication job name already exists. | 迁移任务名称已存在,请修改迁移任务名称。 |
| 400 | SourceServerState.Invalid | The specified source server status: %s is invalid. This operation can only be performed in the following status: %s. | 迁移源的状态:%s 是无效的。该操作只能在以下状态进行:%s。 |
| 400 | ImageName.UsedByReplicationJob | The specified imageName: "%s" was used by another replication job in the current region. | 镜像名称“%s”被当前地域的另一个迁移任务使用。 |
| 400 | InvalidOsMigrationType.NotMatched | The SourceOsType: %s and TargetOsType: %s are not matched. The supported TargetOsType list is: %s. | 源操作系统类型:%s 和目标操作系统类型:%s 不匹配。支持的目标操作系统类型列表是:%s。 |
| 403 | EntityNotExist.Role | The account is unauthorized. Please assign the role AliyunServiceRoleForSMC to your account. | 账号不具备操作权限,请赋予账户AliyunServiceRoleForSMC角色。 |
| 403 | RealNameAuthenticationError | You must perform real-name verification for your account. | 账户未实名认证,请先进行实名认证 |
| 500 | InternalError | An error occurred while processing your request. Please try again. If the problem still exists, please submit a ticket. | 内部错误,请重试。如果多次尝试失败,请提交工单。 |
访问错误中心查看更多错误码。