阿里云服务器CreateImage-[云淘科技_教程]

调用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(InstanceId),并且该实例的镜像是云市场镜像或者来自云市场镜像创建的自定义镜像时。该参数必须和当前实例的镜像的ImageVersion相同或置为空。

DescriptionStringImageTestDescription

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

Platform String CentOS

指定数据盘快照做镜像的系统盘后,需要通过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。

BootMode String BIOS

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

  • BIOS:BIOS启动模式。
  • UEFI:UEFI启动模式。

说明 您需要了解指定的镜像支持的启动模式,当通过该参数修改启动模式后,必须与镜像本身支持的启动模式匹配,实例才能正常启动。

ArchitectureStringx86_64

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

  • i386。
  • x86_64。
  • arm64。

默认值为x86_64。

ClientToken String 123e4567-e89b-12d3-a456-426655440000

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

ResourceGroupId String rg-bp67acfmxazb4p****

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

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

DiskDeviceMapping.N.SnapshotIdStrings-bp17441ohwkdca0****

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

DiskDeviceMapping.N.Size Integer 2000

云盘的大小,单位为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

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

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

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

  • system:系统盘。只能指定 1 块系统盘快照。
  • data:数据盘。最多可以指定 16 块数据盘快照。
Tag.N.key String null

镜像的标签键。

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

Tag.N.KeyStringKeyTest

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

Tag.N.Value String ValueTest

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

Tag.N.value String null

镜像的标签值。

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

DetectionStrategyStringStandard

镜像检测策略,不配置此参数时不触发检测。仅支持标准(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

(0)
匿名
上一篇 2023年10月19日 下午2:50
下一篇 2023年10月19日

相关推荐

新手站长从“心”出发,感谢16年您始终不离不弃。