调用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。
  • 可以指定多个数据盘快照,数据盘设备名默认由系统有序分配,从/dev/xvdb依次排序到/dev/xvdz,不能重复。
  • 可以不指定SnapshotId,不指定时会创建一个指定大小的没有任何数据的空数据盘。
  • 指定的快照不能是2013年7月15日(含)之前创建的快照。

调试

您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。

请求参数

名称 类型 是否必选 示例值 描述
Action String CreateImage

系统规定参数。取值:CreateImage

RegionId String cn-hangzhou

镜像所在的地域ID。您可以调用DescribeRegions查看最新的阿里云地域列表。

DiskDeviceMapping.N.SnapshotId String s-bp17441ohwkdca0****

根据指定的快照创建自定义镜像。

DiskDeviceMapping.N.Size Integer 2000

DiskDeviceMapping.N云盘的大小,单位为GiB。DiskDeviceMapping.N.Size的取值和默认值和DiskDeviceMapping.N.SnapshotId有关:

  • 如果没有指定SnapshotId,Size取值以及默认值为:
    • 普通云盘:5~2000GiB,默认为5
    • 其他云盘:20~32768GiB,默认为20
  • 如果指定了SnapshotId,Size取值必须大于等于SnapshotId的大小,默认为SnapshotId的大小。
DiskDeviceMapping.N.Device String /dev/vdb

指定DiskDeviceMapping.N在自定义镜像中的设备名称。取值范围:

  • 其他云盘(例如SSD云盘、高效云盘和ESSD云盘):/dev/vda~/dev/vdz
  • 普通云盘:/dev/xvda~/dev/xvdz
DiskDeviceMapping.N.DiskType String system

指定DiskDeviceMapping.N.在新镜像中的云盘类型。您可以通过该参数使用数据盘快照做为镜像的系统盘,如果不指定,默认为快照对应的云盘类型。取值范围:

  • system:系统盘
  • data:数据盘
SnapshotId String s-bp17441ohwkdca0****

根据指定的快照创建自定义镜像。

InstanceId String i-bp1g6zv0ce8oghu7****

实例ID。

ImageName String TestCentOS

镜像名称。长度为2~128个英文或中文字符。必须以大小字母或中文开头,不能以http://和https://开头。可以包含数字、半角冒号(:)、下划线(_)或者连字符(-)。

默认值:空

Description String ImageTestDescription

镜像的描述信息。长度为2~256个英文或中文字符,不能以http://和https://开头。

默认值:空

Platform String CentOS

指定数据盘快照做镜像的系统盘后,需要通过Platform确定系统盘的操作系统发行版。取值范围:

  • CentOS
  • Ubuntu
  • SUSE
  • OpenSUSE
  • RedHat
  • Debian
  • CoreOS
  • Aliyun
  • Windows Server 2012
  • Windows 7
  • Customized Linux
  • Others Linux(默认)
Architecture String x86_64

指定数据盘快照做镜像的系统盘后,需要通过Architecture确定系统盘的系统架构。取值范围:

  • i386
  • x86_64(默认)
ClientToken String 123e4567-e89b-12d3-a456-426655440000

保证请求幂等性。从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken只支持ASCII字符,且不能超过64个字符。更多详情,请参见如何保证幂等性

Tag.N.value String null

镜像的标签值。

说明 为提高兼容性,建议您尽量使用Tag.N.Value参数。
Tag.N.key String null

镜像的标签键。

说明 为提高兼容性,建议您尽量使用Tag.N.Key参数。
Tag.N.Key String KeyTest

镜像的标签键。N的取值范围:1~20。一旦传入该值,则不允许为空字符串。最多支持128个字符,不能以aliyun和acs: