通过阿里云CLI调用CreateImage API创建一份自定义镜像。

背景信息

您可以调用CreateImage接口创建一份自定义镜像,您可以使用创建的自定义镜像创建ECS实例(RunInstances)或者更换实例的系统盘(ReplaceSystemDisk)。相关API文档请参见CreateImage

通过阿里云CLI调用API时,不同数据类型的请求参数取值必须遵循格式要求,详情请参见参数格式说明

接口说明

调用该接口时,您需要注意:

  • 等待镜像状态变为可用(Available)后才能使用镜像资源。
  • 安全控制的ECS实例的OperationLocks不能标记为"LockReason" : "security"

以下描述了三种通过该接口创建自定义镜像的方法。请求参数的优先级为:InstanceId > DiskDeviceMapping > SnapshotId,若您的请求中同时含有两个及以上参数,默认以优先级更高的参数为准创建镜像。

  • 方法一:使用一台实例做模板,只需要指定实例ID(InstanceId)。该台实例的状态必须为运行中(Running)或者已停止(Stopped)。接口调用成功后,该台实例的每块云盘均会新增一份快照。
  • 方法二:针对某一台实例的系统盘创建自定义镜像,只需要指定实例系统盘的一份历史快照ID(SnapshotId)。其中,指定的快照不能是2013年7月15日(含)之前创建的快照。
  • 方法三:将多份快照组合成一个镜像模板,需要建立几块云盘的数据关联(DiskDeviceMapping)。

使用方法三创建自定义镜像时,请注意:

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

CLI请求示例

  1. 通过CLI查询您需要的实例ID,详情请参见查询实例的详细信息
  2. 为运行中的ECS实例创建一份自定义镜像。
    aliyun ecs CreateImage --RegionId cn-hangzhou --InstanceId i-bp1aq39j2yul5y01**** --ImageName demoimage --Description demoimage --Platform CentOS

执行结果

{
        "ImageId": "m-bp1503ydxxrppctb****",
        "RequestId": "011AE447-20CE-4043-81AC-7AF2BBC45C38"
}