AttachDisk - 为实例挂载数据盘或系统盘

调用AttachDisk为一台ECS实例挂载一块按量付费数据盘,或者挂载一块系统盘。实例和磁盘必须在同一个可用区。

接口说明

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

  • 磁盘的状态必须为待挂载Available)。

  • 挂载数据盘时:

    • 目标 ECS 实例必须处于运行中Running)或者已停止Stopped)状态。
    • 如果是您单独购买的磁盘,计费方式必须是按量付费。
    • 从 ECS 实例上卸载的系统盘作为数据盘挂载时,不限制计费方式。
    • 弹性临时盘一旦卸载,只能重新挂载至其原始实例。
  • 挂载系统盘时:

    • 目标 ECS 实例必须是卸载系统盘时的源实例。
    • 目标 ECS 实例必须处于已停止Stopped)状态。
    • 您必须设置实例登录凭证。
    • 弹性临时盘不支持挂载为系统盘。
  • 查询 ECS 实例信息时,如果返回数据中包含{"OperationLocks": {"LockReason" : "security"}},则禁止一切操作。

  • 开启多重挂载特性的云盘,只能挂载到支持 NVMe 协议的实例上。更多信息,请参见ESSD 云盘支持 NVMe以及使用多重挂载功能

调试

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

授权信息

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

  • 操作:是指具体的权限点。
  • 访问级别:是指每个操作的访问级别,取值为写入(Write)、读取(Read)或列出(List)。
  • 资源类型:是指操作中支持授权的资源类型。具体说明如下:
    • 对于必选的资源类型,用背景高亮的方式表示。
    • 对于不支持资源级授权的操作,用全部资源表示。
  • 条件关键字:是指云产品自身定义的条件关键字。
  • 关联操作:是指成功执行操作所需要的其他权限。操作者必须同时具备关联操作的权限,操作才能成功。
操作访问级别资源类型条件关键字关联操作
ecs:AttachDiskupdate
  • Disk
    acs:ecs:{#regionId}:{#accountId}:disk/{#diskId}
  • Instance
    acs:ecs:{#regionId}:{#accountId}:instance/{#instanceId}

请求参数

名称类型必填描述示例值
InstanceIdstring

目标 ECS 实例的 ID。

i-bp1dq5lozx5f4pmd****
DiskIdstring

待挂载的磁盘 ID。磁盘(DiskId)和实例(InstanceId)必须在同一个可用区。

说明 支持挂载数据盘和系统盘,相关约束条件请参见上文接口说明章节。
d-bp1j4l5axzdy6ftk****
Devicestring

磁盘设备名称。

说明 该参数即将被弃用,为提高兼容性,建议您尽量使用其他参数。
testDeviceName
DeleteWithInstanceboolean

释放实例时,该磁盘是否随实例一起释放。取值范围:

  • true:释放。
  • false:不释放。磁盘会转换成按量付费数据盘而被保留下来。

默认值:false。

设置该参数时,您需要注意:

  • DeleteWithInstance置为false后,一旦 ECS 实例被安全控制,即OperationLocks中标记了"LockReason" : "security",释放 ECS 实例时会忽略磁盘的该属性,被同时释放。

  • 若您需要挂载的目标磁盘为弹性临时盘,则必须将DeleteWithInstance参数设置为true

  • 开启多重挂载特性的云盘,不支持设置该参数。

false
Bootableboolean

是否作为系统盘挂载。取值范围:

  • true:是。

  • false:否。

默认值:false。

说明 设置为Bootable=true时,目标 ECS 实例必须处于无系统盘状态。
false
Passwordstring

挂载系统盘时,设置实例的用户名密码,仅对 administrator 和 root 用户名生效,其他用户名不生效。长度为 8 至 30 个字符,必须同时包含大小写英文字母、数字和特殊符号中的三类字符。特殊符号可以是:

()`~!@#$%^&*-_+=|{}[]:;'<>,.?/

其中,Windows 实例不能以斜线号(/)为密码首字符。

说明 如果传入Password参数,建议您使用 HTTPS 协议发送请求,避免密码泄露。
EcsV587!
KeyPairNamestring

挂载系统盘时,为 Linux 系统 ECS 实例绑定的 SSH 密钥对的名称。

  • Windows Server 系统:不支持 SSH 密钥对。即使填写了该参数,只执行Password的配置。

  • Linux 系统:密码登录方式会被初始化成禁止。

KeyPairTestName
Forceboolean

是否是强制挂载请求。取值范围:

  • true:是。
  • false:否。

默认值:false。

说明 当前仅 ESSD 同城冗余类型(cloud_regional_disk_auto)支持设置该字段为 true。
false

返回参数

名称类型描述示例值
object
RequestIdstring

请求 ID。

473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E

示例

正常返回示例

JSON格式

{
  "RequestId": "473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E"
}

错误码

HTTP status code错误码错误信息描述
400InvalidDevice.MalformedThe specified device is not valid.指定的磁盘设备名不存在。
400IncorrectInstanceStatusThe current status of the resource does not support this operation.该资源目前的状态不支持此操作。
400InvalidParameterThe input parameter is mandatory for processing this request is empty.参数不能为空。
400InvalidRegionId.MalFormedThe specified RegionId is not valid.指定的地域不存在,请检查该参数是否正确。
400InvalidOperation.InstanceTypeNotSupportThe instance type of the specified instance does not support hot attach disk.磁盘挂载的实例不支持磁盘热插拔操作。
400DiskCategory.OperationNotSupportedThe operation is not supported to the specified disk due to its disk category.由于磁盘种类限制,指定的磁盘不支持该操作。
400InvalidOperation.InstanceTypeNotSupportThe specified disk which has kms key should only attach to ioOptimized instance.指定的实例无效,只有I/O优化类型的实例支持设置KMS Key。
400InvalidDisk.DiskNotBootableThe specified disk is not a bootable disk, can not be attached as system disk.-
400InvalidInstance.NotOriginInstanceThe specified disk can not attached to other instance as system disk.-
400InvalidParameter.AllEmpty%s您没有输入任何参数,请输入必要的参数。
400InvalidParameterForce.DiskCategoryNotSupportedThe specified disk category does not support force attach operation.指定的磁盘类型不支持强制挂载操作
400InvalidParameterForce.PrepaidDiskNotSupportedThe prepaid disk does not support force attach operation.预付费磁盘不支持强制挂载操作
400InvalidParameterForce.MultiAttachDiskNotSupportedThe multi attach disk does not support force attach operation.多重挂载磁盘不支持强制挂载操作
400InvalidParameterForce.RegionNotSupportedThe specified region does not support force attach operation.该地域不支持强制挂载操作
403InstanceDiskLimitExceededThe amount of the disk on instance in question reach its limits.指定实例已经达到可挂载磁盘的最大值。
403InvalidDevice.InUseThe specified device has been occupied.指定的设备已经挂载了磁盘。
403IncorrectDiskStatus%s-
403DiskNotPortableThe specified disk is not a portable disk.指定的磁盘不是可卸载的磁盘,Portable 为 false 的磁盘无法卸载。
403InstanceLockedForSecurityThe instance is locked due to security.您的资源被安全锁定,拒绝操作。
403ResourcesNotInSameZoneThe specified instance and disk are not in the same zone.指定的实例和磁盘不在同一可用区。
403InstanceExpiredOrInArrearsThe specified operation is denied as your prepay instance is expired (prepay mode) or in arrears (afterpay mode).实例已过期或者欠费,请您续费或者结清后再进行操作。
403DiskInArrearsThe specified operation is denied as your disk owing fee.指定的磁盘已欠费。
403DiskErrorIncorrectDiskStatus.指定的磁盘状态不合法。
403DiskId.ValueNotSupportedThe specified parameter diskid is not supported.指定的块存储类型不支持此操作。
403DiskId.StatusNotSupportedThe specified disk status is not supported.当前磁盘的状态不支持此操作。
403IncorrectInstanceStatus.NotSupportESSDThe operation is not supported in this status, please reboot the instance.-
403IncorrectDiskStatusThe operation is not supported in this status.当前的磁盘不支持此操作,请您确认磁盘处于正常使用状态,是否欠费。
403UserNotInTheWhiteListThe user is not in disk white list.您不在磁盘白名单中,请加入白名单后重试。
403InvalidParameter.KMSKeyId.CMKNotEnabledThe CMK needs to be enabled.加密云盘设置了 KMSKeyId 后,CMK必须处于启用状态。您可以调用密钥管理服务的 DescribeKey 接口查询指定CMK的相关信息。
403InvalidParameter.KMSKeyId.CMKUnauthorizedThe CMK needs to be added ECS tag.CMK 未授权
403InvalidParameter.KMSKeyId.KMSUnauthorizedECS service have no right to access your KMS.ECS 服务无权访问您的 KMS。
403DependencyViolation.WindowsInstanceThe instance image is windows, cannot use ssh key pair to login.-
403InvalidInstanceType.NotSupportDiskCategoryThe instanceType of the specified instance does not support this disk category.指定的实例规格(InstanceType)不支持当前实例的云盘类别。请尝试更换其它实例规格。关于实例规格支持的云盘类型,请参见实例规格族文档。
403InvalidInstanceType.NotSupportPL0The instanceType of the specified instance does not support PL0 of cloud_essd.-
403InvalidInstanceType.NvmeRequiredThe instanceType of the specified instance requires nvme protocol.指定实例的规格要求使用 NVMe 协议。
403InvalidInstanceType.NvmeUnsupportedThe instanceType of the specified instance does not support nvme protocol.指定实例的规格不支持 NVMe 协议。
403InvalidInstanceType.NotSupportMultiAttachDiskThe instanceType of the specified instance does not support multi attach disk.指定的实例规格不支持挂载开启多重挂载特性的云盘。
403DiskAttachedNumberExceededThe attaching times of the specified disk exceeded.指定的云盘所挂载的实例数量已达上限。
403InvalidOperation.CanNotAttachMultiAttachDiskAsSystemDiskMulti attach disk can not be attached as system disk.开启多重挂载特性的云盘不支持作为系统盘使用。
403DeleteWithInstance.ConflictMulti attach disk cannot be set to DeleteWithInstance attribute.开启多重挂载特性的云盘不支持设置 DeleteWithInstance。
403InvalidParameter.DeleteWithInstanceThe DeleteWithInstance for the elastic ephemeral disk must be set to true.弹性临时盘的 DeleteWithInstance 属性必须设置为 true。
403InvalidOperation.OtherInstanceUnsupportedThe elastic ephemeral disk can only be attached to the instance it was last mounted on, please check the disk's system tag to get the last associated instance.弹性临时盘仅能被挂载到上一次挂载的实例,请检查磁盘的系统 Tag 来获取上一次的实例。
403InvalidInstance.ZoneConflictThe force attach operation is not supported when both the current and target instances are in the same zone.强制挂载要求当前实例与目标实例处于不同可用区
404InvalidInstanceId.NotFoundThe specified InstanceId does not exist.指定的实例ID未找到。
404InvalidDiskId.NotFoundThe specified disk does not exist.指定的磁盘不存在。请您检查磁盘 ID 是否正确。
404InvalidDisk.InUseThe specified disk has been occupied.指定的磁盘已占用。
404InvalidKMSKeyId.NotFoundThe KMS key used by the disk does not exist.磁盘使用的 KMS 密钥不存在.
500InternalErrorThe request processing has failed due to some unknown error.内部错误,请重试。
500InternalErrorThe request processing has failed due to some unknown error, exception or failure.内部错误,请重试。

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

变更历史

变更时间变更内容概要操作
2024-07-08OpenAPI 错误码发生变更查看变更详情
2024-05-08OpenAPI 错误码发生变更、OpenAPI 入参发生变更查看变更详情
2023-11-24OpenAPI 错误码发生变更查看变更详情