CreateImage - 创建自定义镜像

更新时间:
复制 MD 格式

创建一份自定义镜像。后续您可以使用创建的自定义镜像创建ECS实例(RunInstances),或者更换实例的系统盘(ReplaceSystemDisk)。

接口说明

注意事项

  • 本接口为异步接口,创建自定义镜像请求发送成功后会返回镜像 ID,镜像的创建不是立即完成的,需要调用 DescribeImage 查看镜像信息,当返回信息中的状态为Available时代表镜像创建成功并可用。更多信息,请参见自定义镜像概述

  • 查询 ECS 实例信息时,如果返回数据中包含{"OperationLocks": {"LockReason" : "security"}},则禁止创建自定义镜像。

  • 建议在创建镜像时配置镜像检测参数DetectionStrategy,有助于系统帮助优化您的镜像。更多信息,请参见镜像检测概述

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

  • 根据实例创建自定义镜像:指定实例 ID(InstanceId)。

    • 实例的状态必须为运行中(Running)或者已停止(Stopped)。

    • 接口调用成功后,实例的每块云盘均会新增一份快照。

    重要 由于运行中的实例存在缓存数据未落盘的情况,可能导致创建的自定义镜像数据与实例数据不完全一致,因此建议您停止实例( StopInstances )后创建镜像。
  • 根据快照创建自定义镜像(指定的快照不能是 2013 年 7 月 15 日(含)之前创建的快照。)

    • 使用系统盘快照创建自定义镜像:只需指定实例系统盘的快照 ID(SnapshotId)。

    • 使用系统盘快照和数据盘快照创建自定义镜像:这需要建立几块云盘的数据关联(DiskDeviceMapping)。
      • 系统盘快照只能被指定一个。

      • 数据盘快照可以指定多个,最多不能超过 16 块。不指定DiskDeviceMapping.N.SnapshotId时会创建一个默认容量的空数据盘。

说明

当释放实例时,系统盘将被转为按量付费数据盘保留。该盘创建的快照不支持创建自定义镜像,请根据需要在实例释放前制作自定义镜像。

调试

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

调试

授权信息

下表是API对应的授权信息,可以在RAM权限策略语句的Action元素中使用,用来给RAM用户或RAM角色授予调用此API的权限。具体说明如下:

  • 操作:是指具体的权限点。

  • 访问级别:是指每个操作的访问级别,取值为写入(Write)、读取(Read)或列出(List)。

  • 资源类型:是指操作中支持授权的资源类型。具体说明如下:

    • 对于必选的资源类型,用前面加 * 表示。

    • 对于不支持资源级授权的操作,用全部资源表示。

  • 条件关键字:是指云产品自身定义的条件关键字。

  • 关联操作:是指成功执行操作所需要的其他权限。操作者必须同时具备关联操作的权限,操作才能成功。

操作

访问级别

资源类型

条件关键字

关联操作

ecs:CreateImage

create

*Image

acs:ecs:{#regionId}:{#accountId}:image/*

Instance

acs:ecs:{#regionId}:{#accountId}:instance/{#instanceId}

Snapshot

acs:ecs:{#regionId}:{#accountId}:snapshot/{#snapshotId}

请求参数

名称

类型

必填

描述

示例值

RegionId

string

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

cn-hangzhou

SnapshotId

string

用于创建自定义镜像的快照 ID。

说明

如果仅使用实例的系统盘快照创建自定义镜像时,您可以使用该参数,也可以选用参数DiskDeviceMapping.N.SnapshotId。如果增加数据盘快照,只能使用DiskDeviceMapping.N.SnapshotId参数指定快照。

s-bp17441ohwkdca0****

InstanceId

string

实例 ID。根据实例创建自定义镜像时,必须指定该参数。

i-bp1g6zv0ce8oghu7****

ImageName

string

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

TestCentOS

ImageFamily

string

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

hangzhou-daily-update

ImageVersion

string

镜像版本。

说明

当您指定了实例 ID(InstanceId),并且该实例的镜像是云市场镜像或者来自云市场镜像创建的自定义镜像时,该参数必须和当前实例镜像的ImageVersion相同或置为空。

2017011017

Description

string

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

ImageTestDescription

Platform

string

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

  • Aliyun

  • Anolis

  • CentOS

  • Ubuntu

  • CoreOS

  • SUSE

  • Debian

  • OpenSUSE

  • FreeBSD

  • RedHat

  • Kylin

  • UOS

  • Fedora

  • Fedora CoreOS

  • CentOS Stream

  • AlmaLinux

  • Rocky Linux

  • Gentoo

  • Customized Linux

  • Others Linux

  • Windows Server 2022

  • Windows Server 2019

  • Windows Server 2016

  • Windows Server 2012

  • Windows Server 2008

  • Windows Server 2003

默认值:Others Linux。

CentOS

BootMode

string

修改镜像的启动模式。取值范围:

  • BIOS:BIOS 启动模式。

  • UEFI:UEFI 启动模式。

  • (默认)UEFI-Preferred:双启动模式。

重要

为了避免使用镜像不支持的启动模式导致实例无法正常启动,请您务必在选择该参数之前了解目标镜像支持的启动模式。镜像启动模式详情,请参见镜像启动模式

枚举值:

  • BIOS :

    BIOS

  • UEFI :

    UEFI

  • UEFI-Preferred :

    UEFI-Preferred

BIOS

Architecture

string

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

  • i386。

  • x86_64。

  • arm64。

默认值:x86_64。

x86_64

ClientToken

string

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

123e4567-e89b-12d3-a456-426655440000

ResourceGroupId

string

自定义镜像所在的资源组 ID。如果不设置该参数值,创建的镜像属于默认资源组。

说明

如果您使用 RAM 用户调用该接口,且ResourceGroupId取值为空,您需要注意,当 RAM 用户没有默认资源组权限时,调用接口会返回报错信息Forbidden: User not authorized to operate on the specified resource。请设置 RAM 用户支持的资源组 ID 或者通过相应阿里云账号为该 RAM 用户授予默认资源组权限后,再次调用该接口。

rg-bp67acfmxazb4p****

DiskDeviceMapping

array<object>

创建自定义镜像使用的云盘和快照信息集合。如果需要根据系统盘快照和数据盘快照创建自定义镜像,请使用该参数指定快照。

object

创建自定义镜像使用的云盘和快照。

SnapshotId

string

快照 ID。

s-bp17441ohwkdca0****

Size

integer

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

  • 如果没有指定 SnapshotId,Size 取值以及默认值为:
    • 普通云盘:5~2000GiB,默认为 5。

    • 其他云盘:20~32768GiB,默认为 20。

  • 如果指定了 SnapshotId,Size 取值必须大于等于 SnapshotId 的大小,默认为 SnapshotId 的大小。

2000

Device

string

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

  • 系统盘的设备名必须为:/dev/xvda。

  • 数据盘设备名从/dev/xvdb 依次排序到/dev/xvdz,不能重复。

/dev/xvdb

DiskType

string

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

  • system:系统盘。只能指定 1 块系统盘快照。

  • data:数据盘。最多可以指定 16 块数据盘快照。

system

Tag

array<object>

标签列表。

object

标签列表。

key

string

镜像的标签键。

说明

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

null

Key

string

镜像的标签键。N 的取值范围为 1~20。一旦传入该值,则不允许为空字符串。最多支持 128 个字符,不能以aliyunacs:开头,不能包含http://或者https://

KeyTest

Value

string

镜像的标签值。N 的取值范围为 1~20。一旦传入该值,允许为空字符串。最多支持 128 个字符,不能以acs:开头,不能包含http://或者https://

ValueTest

value

string

镜像的标签值。

说明

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

null

DetectionStrategy

string

镜像检测策略,不配置此参数时不触发检测。仅支持标准(Standard)检测模式。

说明

目前已支持大部分的 Linux/Windows 版本,关于镜像检测项与操作系统限制说明,请参见镜像检测概述镜像检测操作系统限制

Standard

Features

object

镜像特性相关属性。

ImdsSupport

string

镜像的元数据访问模式,可能值:

  • v1:通过该镜像创建 ECS 实例时,不支持将元数据访问模式设置为“仅加固模式”。

  • v2:通过该镜像创建 ECS 实例时,支持将元数据访问模式设置为“仅加固模式”。

默认值:当使用快照创建镜像时,默认为 v1。当使用实例创建镜像时,默认取实例创建时镜像的 ImdsSupport 属性值。

v2

DryRun

boolean

返回参数

名称

类型

描述

示例值

object

ImageId

string

镜像 ID。

m-bp146shijn7hujku****

RequestId

string

请求 ID。

C8B26B44-0189-443E-9816-*******

示例

正常返回示例

JSON格式

{
  "ImageId": "m-bp146shijn7hujku****",
  "RequestId": "C8B26B44-0189-443E-9816-*******"
}

错误码

HTTP status code

错误码

错误信息

描述

400 InvalidImageName.Malformed The specified Image name is wrongly formed. 镜像名称格式错误。长度为2~128个字符。必须以大小字母或中文开头,不能以aliyunacs:开头,不能包含http://或者https://。可以包含数字、半角句号(.)、半角冒号(:)、下划线(_)或者短划线(-)。
400 InvalidImageName.Duplicated The specified image name is already in use. 指定的镜像名称已被使用。
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 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 InvalidParameter.AllEmpty %s
400 InvalidParameter.DiskType The specified disk type which has kms key can't convert to system disk.
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 InvalidInstance.NotFoundSystemDisk The specified instance does not have system disk.
400 InvalidImageFamily.Malformed The format of the specified image family is invalid. 指定的镜像族系格式有误。
400 ImageQuotaExceed.ImageFamily The specified image family exceeds the maximum number of images for one image family.
400 ImageFamilyQuotaExceed The number of image families exceeds the limit in the region.
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 的请求参数不符合。
400 InvalidBootMode.NotSupport The specified parameter BootMode is not supported for current image architecture. 当前的镜像架构不支持设置该启动模式。
400 InvalidParameter.FeaturesImdsSupport The specified parameter Features.ImdsSupport is not supported. 指定的参数Features.ImdsSupport不支持。
400 InvalidOperation.DiskCategoryUnsupported The current category of the disk does not support this operation. 磁盘类型不支持当前操作
400 AccountForbidden.CreateOrder Order cannot be created due to abnormal account. 当前账号不允许创建订单。
400 InvalidBootMode.Malformed The specified parameter BootMode is invalid. Valid options are BIOS, UEFI, and UEFI-Preferred. 指定的BootMode参数无效。有效选项包括BIOS、UEFIUEFI- preferred。
400 InvalidDetectionStrategy.Malformed The specified value for parameter DetectionStrategy is not supported. Please refer to the documentation for accepted values. 不支持指定的DetectionStrategy参数值。请参考文档了解可接受的值。
400 InvalidParameter.SecureBootSupport The specified parameter SecureBootOptions.SecureBootSupport is not valid. 指定的参数SecureBootOptions.SecureBootSupport不合法。
500 InternalError The process of creating snapshot has failed due to some unknown error. 创建快照失败。
403 IncorrectDiskStatus.NeverAttached The specified disk has never been attached to instance.
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 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 InvalidSystemSnapshot.Missing %s
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.
403 InvalidParameter.KMSKeyId.KMSUnauthorized ECS service have no right to access your KMS. ECS 服务无权访问您的 KMS。
403 QuotaExceed.Tags %s 标签数超过可以配置的最大数量。%s为变量,将根据调用API的实际情况动态返回错误信息。
403 InvalidSnapshotCategory.NotSupportImageCreation The specified snapshot category does not support create image.
403 TooManySnapshot.Unfinished There are too many snapshots being created, please wait for them to be created done.
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. 在关机状态下添加云盘后需要重启实例后才能创建自定义镜像。
403 QuotaExceed.ConcurrentSnapshotQuota The number of snapshots being created for the disk %s has exceeded the concurrent quota (%s). Please wait for the previous snapshots to complete before trying again. 该磁盘正在创建的快照数量已超过并发配额,请等待之前的快照完成后再重试。
403 InvalidOperation.SnapshotStorageLocationUnsupported Snapshots with storage location in CloudBox do not support the current operation. 存储位置在CloudBox中的快照不支持当前操作。
403 AccountEnterpriseStatusInvalid Your enterprise registration is marked as revoked/deregistered in the National Enterprise Credit Information Publicity System. Account transaction features (purchase/renewal/recharge) are disabled. Please update real-name certification via Account Center. Restrictions will auto-remove after verification. 您企业的登记状态在国家企业信用信息公示系统内查询已是注销(或吊销)状态,您的账号将无法进行产品新购、续费、充值等交易操作。请您尽快通过账号中心变更实名认证。变更完成后,阿里云会自动解除限购处置。
403 InvalidOperation.DefaultFreeSnapshotNotSupport The specified snapshot is a default free snapshot and does not support this operation. 指定的快照是一个默认免费快照,不支持当前操作。
404 InvalidSnapshotId.NotFound The specified SnapshotId does not exist.
404 InvalidInstanceId.NotFound The specified instance %s does not exist. 指定的实例不存在。
404 InvalidResourceGroup.NotFound The ResourceGroup provided does not exist in our records. 资源组并不在记录中。

访问错误中心查看更多错误码。

变更历史

更多信息,参考变更详情