调用CreateImage创建一份自定义镜像。您可以使用创建的自定义镜像创建ECS实例(RunInstances),或者更换实例的系统盘(ReplaceSystemDisk)。
接口说明
调用该接口时,您需要注意:
- 等待镜像状态变为可用(Available)后才能使用镜像资源。
- 查询ECS实例信息时,如果返回数据中包含
{"OperationLocks": {"LockReason" : "security"}}
,则禁止一切操作。 - 强烈建议在创建镜像时配置镜像检测参数,有助于系统帮助优化您的镜像。更多信息,请参见镜像检测概述。
以下描述了三种通过该接口创建自定义镜像的方法。请求参数的优先级为:InstanceId
> DiskDeviceMapping
> SnapshotId
,若您的请求中同时含有两个及以上参数,默认以优先级更高的参数为准创建镜像。
- 方法一:使用一台实例做模板,只需要指定实例ID(
InstanceId
)。该台实例的状态必须为运行中(Running
)或者已停止(Stopped
)。接口调用成功后,该台实例的每块云盘均会新增一份快照。由于运行中的实例存在缓存数据未落盘的情况,可能导致创建的自定义镜像数据与实例数据不完全一致。因此阿里云推荐您停止实例(StopInstances)后创建镜像。 - 方法二:针对某一台实例的系统盘创建自定义镜像,只需要指定实例系统盘的一份历史快照ID(
SnapshotId
)。其中,指定的快照不能是2013年7月15日(含)之前创建的快照。 - 方法三:将多份快照组合成一个镜像模板,需要建立几块云盘的数据关联(
DiskDeviceMapping
)。
使用方法三创建自定义镜像时,请注意:
- 只能指定一个系统盘快照,系统盘的设备名必须为/dev/xvda。
- 可以指定多个数据盘快照,最多不能超过16块,数据盘设备名默认由系统有序分配,从/dev/xvdb依次排序到/dev/xvdz,不能重复。
- 可以不指定
SnapshotId
,不指定时会创建一个指定大小的没有任何数据的空数据盘。 - 指定的快照不能是2013年7月15日(含)之前创建的快照。
调试
您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。
请求参数
名称 |
类型 |
是否必选 |
示例值 |
描述 |
Action | String | 是 | CreateImage |
系统规定参数。取值:CreateImage。 |
RegionId | String | 是 | cn-hangzhou |
镜像所在的地域ID。您可以调用DescribeRegions查看最新的阿里云地域列表。 |
SnapshotId | String | 否 | s-bp17441ohwkdca0**** |
用于创建自定义镜像的快照ID。 |
InstanceId | String | 否 | i-bp1g6zv0ce8oghu7**** |
实例ID。 |
ImageName | String | 否 | TestCentOS |
镜像名称。长度为2~128个英文或中文字符。必须以大小写字母或中文开头,不能以http://和https://开头。可以包含数字、半角冒号(:)、下划线(_)或者短划线(-)。 |
ImageFamily | String | 否 | hangzhou-daily-update |
镜像族系名称。长度为2~128个英文或中文字符。必须以大小写字母或中文开头,不能以aliyun和acs:开头,不能包含http://或者https://。可以包含数字、半角冒号(:)、下划线(_)或者短划线(-)。 |
ImageVersion | String | 否 | 2017011017 |
镜像版本。 说明 当您指定了实例ID( |
Description | String | 否 | ImageTestDescription | 镜像的描述信息。长度为2~256个英文或中文字符,不能以http://或https://开头。 |
Platform | String | 否 | CentOS |
指定数据盘快照做镜像的系统盘后,需要通过Platform确定系统盘的操作系统发行版。取值范围:
默认值:Others Linux。 |
BootMode | String | 否 | BIOS |
修改镜像的启动模式。取值范围:
说明 您需要了解指定的镜像支持的启动模式,当通过该参数修改启动模式后,必须与镜像本身支持的启动模式匹配,实例才能正常启动。 |
Architecture | String | 否 | x86_64 | 指定数据盘快照做镜像的系统盘后,需要通过Architecture确定系统盘的系统架构。取值范围:
默认值为x86_64。 |
ClientToken | String | 否 | 123e4567-e89b-12d3-a456-426655440000 |
保证请求幂等性。从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符,且不能超过64个字符。更多信息,请参见如何保证幂等性。 |
ResourceGroupId | String | 否 | rg-bp67acfmxazb4p**** |
自定义镜像所在的资源组ID。如果不设置该参数值,创建的镜像属于默认资源组。 说明 如果您当前使用的是RAM用户调用该接口,且 |
DiskDeviceMapping.N.SnapshotId | String | 否 | s-bp17441ohwkdca0**** | 根据指定的快照创建自定义镜像。 |
DiskDeviceMapping.N.Size | Integer | 否 | 2000 |
云盘的大小,单位为GiB。DiskDeviceMapping.N.Size的取值和默认值和DiskDeviceMapping.N.SnapshotId有关:
|
DiskDeviceMapping.N.Device | String | 否 | /dev/vdb |
指定在自定义镜像中的设备名称。取值范围:
|
DiskDeviceMapping.N.DiskType | String | 否 | system |
指定在新镜像中的云盘类型。您可以通过该参数使用数据盘快照做为镜像的系统盘,如果不指定,默认为快照对应的云盘类型。取值范围:
|
Tag.N.key | String | 否 | null |
镜像的标签键。 说明 为提高兼容性,建议您尽量使用Tag.N.Key参数。 |
Tag.N.Key | String | 否 | KeyTest | 镜像的标签键。N的取值范围为1~20。一旦传入该值,则不允许为空字符串。最多支持128个字符,不能以 |
Tag.N.Value | String | 否 | ValueTest |
镜像的标签值。N的取值范围为1~20。一旦传入该值,允许为空字符串。最多支持128个字符,不能以 |
Tag.N.value | String | 否 | null |
镜像的标签值。 说明 为提高兼容性,建议您尽量使用Tag.N.Value参数。 |
DetectionStrategy | String | 否 | Standard | 镜像检测策略,不配置此参数时不触发检测。仅支持标准(Standard)检测模式。 说明 目前已支持大部分的Linux/Windows版本,关于镜像检测项与操作系统限制说明,请参见镜像检测概述和镜像检测操作系统限制。 |
返回数据
名称 |
类型 |
示例值 |
描述 |
ImageId | String | m-bp146shijn7hujku**** |
镜像ID。 |
RequestId | String | C8B26B44-0189-443E-9816-******* |
请求ID。 |
示例
请求示例
https://ecs.aliyuncs.com/?Action=CreateImage
&RegionId=cn-hangzhou
&DiskDeviceMapping.1.Size=2000
&DiskDeviceMapping.1.SnapshotId=s-bp17441ohwkdca0****
&DiskDeviceMapping.1.DiskType=system
&SnapshotId=s-bp17441ohwkdca0****
&InstanceId=i-bp1g6zv0ce8oghu7****
&ImageName=TestCentOS
&ImageVersion=2017011017
&Description=ImageTestDescription
&Platform=CentOS
&Architecture=x86_64
&ClientToken=123e4567-e89b-12d3-a456-426655440000
&Tag.1.Key=KeyTest
&Tag.1.Value=ValueTest
&
正常返回示例
XML
格式
HTTP/1.1 200 OK
Content-Type:application/xml
C8B26B44-0189-443E-9816-*******
m-bp146shijn7hujku****
JSON
格式
HTTP/1.1 200 OK
Content-Type:application/json
{
"RequestId" : "C8B26B44-0189-443E-9816-*******",
"ImageId" : "m-bp146shijn7hujku****"
}
错误码
HttpCode |
错误码 |
错误信息 |
描述 |
400 | InvalidImageName.Malformed | The specified Image name is wrongly formed. | 镜像名称格式错误。长度为2~128个字符。必须以大小字母或中文开头,不能以aliyun和acs:开头,不能包含http://或者https://。可以包含数字、半角句号(.)、半角冒号(:)、下划线(_)或者短划线(-)。 |
400 | InvalidImageName.Duplicated | The specified Image name has already bean used. | 镜像名称已经重复。 |
400 | InvalidDescription.Malformed | The specified description is wrongly formed. | 指定的资源描述格式不合法。长度为 2-256 个字符,不能以 http:// 和 https:// 开头。 |
400 | InvalidImageVersion.Malformed | The specified ImageVersion is wrongly formed. | 无效的镜像版本号取值(或者您无权使用该快照)。 |
400 | IncorrectInstanceStatus | The current status of the instance does not support this operation. | 当前实例状态不支持此操作。 |
400 | InstanceLockedForSecurity | The specified operation is denied as your instance is locked for security reasons. | 实例被安全锁定。 |
400 | InvalidDevice.Malformed | The specified parameter DiskDeviceMapping.n.Device is not valid. | 指定的参数 DiskDeviceMapping.n.Device 不合法。 |
400 | MissingParameter | The input parameter SnapshotId or InstanceId or DiskDeviceMapping that is mandatory for processing this request is not supplied. | 参数 SnapshotId,InstanceId 和 DiskDeviceMapping 不得为空。 |
400 | InvalidSize.ValueNotSupported | The specified parameter DiskDeviceMapping.n.Size beyond the permitted range. | 指定的参数 DiskDeviceMapping.n.Size 超出取值范围。 |
400 | InvalidDevice.InUse | The specified parameter DiskDeviceMapping.n.Device has been occupied. | 指定的参数 DiskDeviceMapping.n.Device 已被占用。 |
400 | OperationDenied | The specified parameter DiskDeviceMapping.n.SnapshotId does not contain system disk snapshot. | 系统盘快照中不存在指定的 DiskDeviceMapping 快照 ID。 |
400 | OperationDenied | The specified parameter DiskDeviceMapping.n.SnapshotId contains two or more system disk snapshots. | 指定的 DiskDeviceMapping 快照 ID 中已存在系统盘快照。 |
400 | InvalidDiskCategory.CreateImage | The specified diskCategory is not allowed to create image. | 指定的磁盘类型不允许创建镜像。 |
400 | InvalidArchitecture.Malformed | The specified Architecture is wrongly formed. | 参数 Architecture 格式错误。 |
400 | InvalidPlatform.Malformed | The specified Platform is wrongly formed. | 指定的镜像操作系统发行版不合法。 |
400 | OperationDenied | Not support creating system image from an encrypted snapshot/disk. | 被加密的磁盘和快照不允许创建系统镜像。 |
400 | InvalidParameter.AllEmpty | %s | 您没有输入任何参数,请输入必要的参数。 |
400 | Duplicate.TagKey | The Tag.N.Key contain duplicate key. | 标签中存在重复的键,请保持键的唯一性。 |
400 | InvalidTagKey.Malformed | The specified Tag.n.Key is not valid. | 指定的标签键参数有误。 |
400 | InvalidTagValue.Malformed | The specified Tag.n.Value is not valid. | 指定的标签值参数有误。 |
400 | InvalidDiskType.ValueNotSupported | The specified disk type is not supported. | 指定的磁盘属性不支持。 |
400 | IdempotenceParamNotMatch | Request uses a client token in a previous request but is not identical to that request. | 与相同 ClientToken 的请求参数不符合。 |
403 | InvalidSnapshotId.NotReady | The current status of the DiskDeviceMapping.n.SnapshotId or SnapshotId does not support this operation. | 指定的快照状态不支持该操作。 |
403 | InvalidSnapshot.TooOld | This operation is denied because the specified snapshot by DiskDeviceMapping.n.SnapshotId or SnapshotId is created before 2013-07-15. | 该操作被拒绝。因为 DiskDeviceMapping.n.SnapshotId 或 SnapshotId 指定的快照创建于 2013-07-15 之前。 |
403 | OperationDenied | The specified snapshot is not allowed to create image. | 指定快照不允许创建镜像。 |
403 | QuotaExceed.Image | The Image Quota exceeds. | 自定义镜像额度已用完。 |
403 | OperationDenied | The specified snapshot is not from system disk. | 指定的快照不是系统盘快照。 |
403 | InvalidParamter.Conflict | The specified same token is trying to make requests with different parameters. | 同一个 Token 正在请求处理两个不同的参数。 |
403 | InvalidAccountStatus.NotEnoughBalance | Your account does not have enough balance. | 账号余额不足,请您先充值再进行该操作。 |
403 | InvalidAccountStatus.SnapshotServiceUnavailable | Snapshot service has not been opened yet. | 快照服务未开通,操作无法执行。 |
403 | UserNotInTheWhiteList | The user is not in the white list of create image by data disk snapshot. | 您不能通过数据磁盘快照创建镜像,请先加入到该白名单中。 |
403 | IncorrectDiskStatus.Invalid | Device status is invalid, please restart instance and try again. | 设备状态无效,请重启实例后再试。 |
403 | OperationDenied.InvalidSnapshotCategory | %s | 该快照类型不支持此操作。 |
403 | QuotaExceed.Snapshot | The snapshot quota exceeds. | 快照额度超过限制,若要存储新快照,在不影响业务的情况下,请您删除已有的老快照。 |
403 | IncorrectDiskStatus.Transferring | The specified device is transferring, you can retry after the process is finished. | 指定磁盘正在迁移中,请在迁移完毕后重试。 |
403 | IncorrectDiskStatus | The current disk status does not support this operation. | 当前的磁盘不支持此操作,请您确认磁盘处于正常使用状态,是否欠费。 |
403 | IncorrectDiskStatus.CreatingSnapshot | A previous snapshot creation is in process. | 当前磁盘有创建中的快照,请您等待创建完成再试。 |
403 | InvalidParameter.KMSKeyId.CMKUnauthorized | The CMK needs to be added ECS tag. | CMK 未授权 |
403 | InvalidParameter.KMSKeyId.CMKNotEnabled | The CMK needs to be enabled. | 加密云盘设置了 KMSKeyId 后,CMK必须处于启用状态。您可以调用密钥管理服务的 DescribeKey 接口查询指定CMK的相关信息。 |
403 | InvalidParameter.KMSKeyId.KMSUnauthorized | ECS service have no right to access your KMS. | ECS 服务无权访问您的 KMS。 |
403 | QuotaExceed.Tags | %s | 标签数超过可以配置的最大数量。%s为变量,将根据调用API的实际情况动态返回错误信息。 |
403 | HibernationConfigured.InstanceOperationForbidden | The operation is not permitted due to limit of the hibernation configured instance. | 不符合开启休眠选项的实例的相关限制,操作不被允许。 |
403 | SnapshotNotReady | The specified snapshot is not ready. | 快照未完成创建,无法用来创建镜像。 |
403 | IncorrectInstanceStatus.NeedRestart | The instance needs to be restarted after adding a disk in a shutdown status. | 在关机状态下添加云盘后需要重启实例后才能创建自定义镜像。 |
404 | InvalidSnapshotId.NotFound | The specified SnapshotId does not exist. | 指定的快照不存在,请您检查快照是否正确。 |
404 | InvalidInstanceId.NotFound | The specified InstanceId does not exist. | 指定的实例不存在,请您检查实例ID是否正确。 |
404 | InvalidResourceGroup.NotFound | The ResourceGroup provided does not exist in our records. | 资源组并不在记录中。 |
500 | InternalError | The process of creating snapshot has failed due to some unknown error. | 创建快照失败。 |
500 | InternalError | The request processing has failed due to some unknown error, exception or failure. | 内部错误,请重试。 |
访问错误中心查看更多错误码。
关于阿里云ecs服务器的内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家
阿里云企业补贴进行中: 马上申请
腾讯云限时活动1折起,即将结束: 马上收藏
同尘科技为腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利:同意关联,立享优惠
本文来自投稿,不代表新手站长_郑州云淘科技有限公司立场,如若转载,请注明出处:https://www.cnzhanzhang.com/9687.html