华为云用户手册

  • 响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 status String job的状态。SUCCESS:成功。RUNNING:运行中。FAIL:失败。INIT:正在初始化。WAITING_EXECUTE:等待执行。 枚举值: SUCCESS RUNNING FAIL INIT WAITING_EXECUTE entities JobEntities object job的响应信息。 job_id String job的ID。 job_type String job的类型。 createVolume:创建单个云硬盘。 batchCreateVolume:批量创建云硬盘。 deleteVolume:删除单个云硬盘。 extendVolume:扩容云硬盘。 bulkDeleteVolume:批量删除云硬盘。 deleteSingleVolume:批量删除时逐个删除单个云硬盘。 retypeVolume:对云硬盘做硬盘类型变更。 begin_time String 开始时间。 end_time String 结束时间。 error_code String job执行失败时的错误码。 fail_reason String job执行失败时的错误原因。 表4 JobEntities 参数 参数类型 描述 volume_type String 云硬盘的类型。 size Integer 云硬盘的容量,单位为GiB。 volume_id String 云硬盘的ID。 name String 云硬盘的名称。 sub_jobs Array of SubJob objects 子Job的信息。当存在子Job信息时,entities中的其他字段将不会返回。 表5 SubJob 参数 参数类型 描述 status String 子job的状态。SUCCESS:成功。RUNNING:运行中。FAIL:失败。INIT:正在初始化。 枚举值: SUCCESS RUNNING FAIL INIT entities SubJobEntities object 子job的响应信息。 job_id String 子job的ID。 job_type String 子job的类型。 createVolume:创建单个云硬盘。 batchCreateVolume:批量创建云硬盘。 deleteVolume:删除单个云硬盘。 extendVolume:扩容云硬盘。 bulkDeleteVolume:批量删除云硬盘。 deleteSingleVolume:批量删除时逐个删除单个云硬盘。 retypeVolume:对云硬盘做硬盘类型变更。 begin_time String 开始时间。 end_time String 结束时间。 error_code String 子job执行失败时的错误码。 fail_reason String 子job执行失败时的错误原因。 表6 SubJobEntities 参数 参数类型 描述 volume_type String 云硬盘的类型。 size Integer 云硬盘的容量,单位为GiB。 volume_id String 云硬盘的ID。 name String 云硬盘的名称。 状态码: 400 表7 响应Body参数 参数 参数类型 描述 error Error object 出现错误时,返回的错误码。错误码和其对应的含义请参考错误码说明。 表8 Error 参数 参数类型 描述 code String 出现错误时,返回的错误码。错误码和其对应的含义请参考错误码说明。 message String 出现错误时,返回的错误消息。
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。 通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 表3 请求Body参数 参数 是否必选 参数类型 描述 os-set_bootable 是 CinderUpdateVolumeBootableOption object 标记设置云硬盘启动盘操作 表4 CinderUpdateVolumeBootableOption 参数 是否必选 参数类型 描述 bootable 是 Boolean 是否启动盘标识。false:不启动true:启动 缺省值:true
  • 请求示例 创建一个云硬盘:使用镜像在DSS存储池中创建一个非共享云硬盘,云硬盘的类型为普通IO,磁盘模式为SCSI,云硬盘的大小为40GiB。 POST https://{endpoint}/v2/{project_id}/volumes { "volume" : { "name" : "openapi_vol01", "imageRef" : "027cf713-45a6-45f0-ac1b-0ccc57ac12e2", "availability_zone" : "xxx", "description" : "create for api test", "volume_type" : "SATA", "metadata" : { "hw:passthrough" : "true" }, "consistencygroup_id" : null, "source_volid" : null, "snapshot_id" : null, "multiattach" : false, "source_replica" : null, "size" : 40 }, "OS-SCH-HNT:scheduler_hints" : { "dedicated_storage_id" : "eddc1a3e-4145-45be-98d7-bf6f65af9767" } }
  • 响应示例 状态码: 202 Accepted { "volume" : { "attachments" : [ ], "availability_zone" : "xxx", "bootable" : "false", "created_at" : "2016-05-25T02:38:40.392463", "description" : "create for api test", "encrypted" : false, "id" : "8dd7c486-8e9f-49fe-bceb-26aa7e312b66", "links" : [ { "href" : "https://volume.localdomain.com:8776/v2/5dd0b0056f3d47b6ab4121667d35621a/volumes/8dd7c486-8e9f-49fe-bceb-26aa7e312b66", "rel" : "self" }, { "href" : "https://volume.localdomain.com:8776/5dd0b0056f3d47b6ab4121667d35621a/volumes/8dd7c486-8e9f-49fe-bceb-26aa7e312b66", "rel" : "bookmark" } ], "metadata" : { "__system__encrypted" : 0 }, "name" : "openapi_vol01", "replication_status" : "disabled", "multiattach" : false, "size" : 40, "status" : "creating", "user_id" : "39f6696ae23740708d0f358a253c2637", "volume_type" : "SATA" } } 状态码: 400 Bad Request { "error" : { "message" : "XXXX", "code" : "XXX" } }
  • 响应参数 状态码: 202 表7 响应Body参数 参数 参数类型 描述 volume CreateVolumeDetail object 待创建的云硬盘信息。 表8 CreateVolumeDetail 参数 参数类型 描述 id String 云硬盘ID。 links Array of Link objects 云硬盘URI自描述信息。 name String 云硬盘名称。 status String 云硬盘状态,具体请参见云硬盘状态。 attachments Array of VolumeAttachment objects 挂载信息。 availability_zone String 云硬盘所属AZ。 bootable String 是否为启动云硬盘。 true:表示为启动云硬盘。 false:表示为非启动云硬盘。 encrypted Boolean 当前云硬盘服务不支持该字段。 created_at String 创建云硬盘的时间。 时间格式:UTC YYYY-MM-DDTHH:MM:SS.XXXXXX description String 云硬盘描述。 volume_type String 云硬盘类型。 目前支持"SATA", "SAS", "GPSSD, "SSD","ESSD","GPSSD2","ESSD2"七种 “SATA”为普通IO云硬盘 “SAS”为高IO云硬盘 "GPSSD"为通用型SSD云硬盘 “SSD”为超高IO云硬盘 “ESSD”为极速IO云硬盘 "GPSSD2"为通用型SSD V2云硬盘 "ESSD2"为极速型SSD V2云硬盘 当指定的云硬盘类型在availability_zone内不存在时,则创建云硬盘失败。 replication_status String 预留属性。 consistencygroup_id String 所属一致性组ID。 source_volid String 源云硬盘ID。 当前云硬盘服务不支持该字段。 snapshot_id String 快照ID。 metadata VolumeMetadata object 元数据。 size Integer 云硬盘大小,单位为GiB。 user_id String 使用云硬盘用户ID。 updated_at String 云硬盘更新时间。 shareable Boolean 是否为可共享云硬盘。 说明: 该字段已经废弃,请使用multiattach。 multiattach Boolean 是否为共享云硬盘。 true:表示为共享云硬盘。 false:表示为非共享云硬盘。 storage_cluster_id String 预留属性。 表9 Link 参数 参数类型 描述 href String 对应的快捷链接。 rel String 快捷链接标记名称。 缺省值:next 表10 VolumeAttachment 参数 参数类型 描述 attached_at String 挂载的时间信息。 时间格式:UTC YYYY-MM-DDTHH:MM:SS.XXXXXX attachment_id String 挂载信息对应的ID。 device String 挂载点 host_name String 云硬盘挂载到的云服务器云主机对应 的物理主机的名称。 id String 挂载的资源ID server_id String 云硬盘挂载到的云服务器云主机的 ID。 volume_id String 云硬盘ID 表11 VolumeMetadata 参数 参数类型 描述 __system__cmkid String metadata中的加密cmkid字段,与__system__encrypted配合表示需要加密,cmkid长度固定为36个字节。 说明: 请参考 查询密钥列表,通过HTTPS请求获取密钥ID。 __system__encrypted String metadata中的表示加密功能的字段,0代表不加密,1代表加密。 该字段不存在时,云硬盘默认为不加密。 full_clone String 从快照创建云硬盘时,如需使用link克隆方式,请指定该字段的值为0。 hw:passthrough String true表示云硬盘的设备类型为SCSI类型,即允许ECS操作系统直接访问底层存储介质。支持SCSI锁命令。 false表示云硬盘的设备类型为VBD (虚拟块存储设备 , Virtual Block Device)类型,即为默认类型,VBD只能支持简单的SCSI读写命令。 该字段不存在时,云硬盘默认为VBD类型。 状态码: 400 表12 响应Body参数 参数 参数类型 描述 error Error object 出现错误时,返回的错误信息。 表13 Error 参数 参数类型 描述 code String 出现错误时,返回的错误码。 错误码和其对应的含义请参考错误码说明。 message String 出现错误时,返回的错误消息。
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。 通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 表3 请求Body参数 参数 是否必选 参数类型 描述 volume 是 CinderCreateVolumeOption object 待创建的云硬盘信息 说明: 不支持同时使用“source_volid”、“snapshot_id”和“imageRef”这三个字段中的任意两个。 OS-SCH-HNT:scheduler_hints 否 CinderCreateVolumeSchedulerHints object 调度参数。调度参数,当前支持dedicated_storage_id字段,表明将云硬盘创建在DSS存储池中。 表4 CinderCreateVolumeOption 参数 是否必选 参数类型 描述 availability_zone 是 String 指定要创建云硬盘的AZ。 若指定的AZ不存在或指定的AZ和备份所在的AZ不同,则创云硬盘失败。 consistencygroup_id 否 String 一致性组ID,该参数表示此云硬盘属 于该一致性组,当前云硬盘服务不支 持该功能 description 否 String 云硬盘的描述。最大支持85个字符。 imageRef 否 String 镜像ID,指定该参数表示创建云硬盘方式为从镜像创建。 说明: 不支持通过BMS的镜像创建BMS系统盘。 获取镜像ID的方法:请参见查询镜像列表。 metadata 否 VolumeMetadata object 云硬盘的metadata数据,metadata中的key和value长度不大于255个字节。 “metadata”字段信息中列举了部分字段,您还可以根据创建云硬盘的要求输入其他字段。 说明: metadata里面不能有value为null的键值对。 multiattach 否 Boolean 创建共享云硬盘的信息。默认值为false。 true:表示为共享云硬盘。 false:表示为非共享云硬盘。 请参见 共享云硬盘及使用方法了解更多信息。 name 否 String 云硬盘名称。最大支持64个字符。 size 否 Integer 云硬盘大小,单位为GiB,其限制如下: 系统盘:1GiB-1024GiB 数据盘:10GiB-32768GiB 创建空白云硬盘,size为必选,请在范围内根据需求自定义。 从快照创建云硬盘时,size为必选,且云硬盘大小不能小于快照大小。 从镜像创建云硬盘时,size为必选,且云硬盘大小不小于镜像属性中min_disk要求的最小云硬盘容量。 snapshot_id 否 String 快照ID,指定该参数表示创建云硬盘方式为从快照创建云硬盘 source_replica 否 String 该参数表示从云硬盘的克隆来创建云硬 盘,当前云硬盘服务不支持该功能 source_volid 否 String 源云硬盘ID,指定该参数表示创建云 硬盘方式为从源云硬盘克隆。当前云 硬盘服务不支持该功能。 volume_type 是 String 云硬盘类型。 目前支持"SATA", "SAS", "GPSSD, "SSD","ESSD","GPSSD2","ESSD2"七种 “SATA”为普通IO云硬盘 “SAS”为高IO云硬盘 "GPSSD"为通用型SSD云硬盘 “SSD”为超高IO云硬盘 “ESSD”为极速IO云硬盘 "GPSSD2"为通用型SSD V2云硬盘 "ESSD2"为极速型SSD V2云硬盘 当指定的云硬盘类型在availability_zone内不存在时,则创建云硬盘失败。 说明: 从快照创建云硬盘时,volume_type字段必须和快照源云硬盘保持一致。 了解不同云硬盘类型的详细信息,请参见 云硬盘类型及性能介绍。 枚举值: ESSD2 GPSSD2 ESSD SSD GPSSD SAS SATA iops 否 Integer 给云硬盘配置iops,购买GPSSD2、ESSD2类型的云硬盘时必填,其他类型不能设置。 说明: 了解GPSSD2、ESSD2类型的iops大小范围,请参见云硬盘类型及性能介绍里面的云硬盘性能数据表。 只支持按需计费。 throughput 否 Integer 给云硬盘配置吞吐量,单位是MiB/s,购买GPSSD2类型云盘时必填,其他类型不能设置。 说明: -了解GPSSD2类型的吞吐量大小范围,请参见云硬盘类型及性能介绍里面的云硬盘性能数据表。 只支持按需计费。 表5 VolumeMetadata 参数 是否必选 参数类型 描述 __system__cmkid 否 String metadata中的加密cmkid字段,与__system__encrypted配合表示需要加密,cmkid长度固定为36个字节。 说明: 请参考 查询密钥列表,通过HTTPS请求获取密钥ID。 __system__encrypted 否 String metadata中的表示加密功能的字段,0代表不加密,1代表加密。 该字段不存在时,云硬盘默认为不加密。 full_clone 否 String 从快照创建云硬盘时,如需使用link克隆方式,请指定该字段的值为0。 hw:passthrough 否 String true表示云硬盘的设备类型为SCSI类型,即允许ECS操作系统直接访问底层存储介质。支持SCSI锁命令。 false表示云硬盘的设备类型为VBD (虚拟块存储设备 , Virtual Block Device)类型,即为默认类型,VBD只能支持简单的SCSI读写命令。 该字段不存在时,云硬盘默认为VBD类型。 表6 CinderCreateVolumeSchedulerHints 参数 是否必选 参数类型 描述 dedicated_storage_id 否 String 专属分布式存储池id。
  • 响应示例 状态码: 200 可用分区的信息。 { "availabilityZoneInfo" : [ { "zoneState" : { "available" : true }, "zoneName" : "az-dc-1" } ] } 状态码: 400 Bad Request { "error" : { "message" : "XXXX", "code" : "XXX" } }
  • 响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 availabilityZoneInfo Array of AzInfo objects 查询请求返回的可用分区列表。 表4 AzInfo 参数 参数类型 描述 zoneName String 可用分区的名字。 zoneState ZoneState object 可用分区的状态。 表5 ZoneState 参数 参数类型 描述 available Boolean 可用分区是否可用。 状态码: 400 表6 响应Body参数 参数 参数类型 描述 error Error object 出现错误时,返回的错误信息。 表7 Error 参数 参数类型 描述 code String 出现错误时,返回的错误码。 错误码和其对应的含义请参考错误码说明。 message String 出现错误时,返回的错误消息。
  • API概览 云硬盘所提供的接口分为EVS自定义API与OpenStack Cinder API。 自定义API不依赖于OpenStack,OpenStack Cinder API依赖于OpenStack。两套接口配合使用,可以帮助您完整的使用云硬盘的所有功能。此外,部分扩展接口提供了基于企业项目的授权功能,具体在该接口的功能介绍中有描述,如果您需要使用企业项目授权功能,建议您调用这部分接口。 表1 接口说明 类型 子类型 说明 API 云硬盘 该部分API提供云硬盘的创建、删除、云硬盘详情查询等操作。 云硬盘快照 云硬盘快照指的是云硬盘数据在某个时刻的完整拷贝或镜像。 该部分API提供回滚快照数据至云硬盘的操作。 云硬盘标签 标签用于标识云资源,可通过标签实现对云资源的分类和搜索。 该部分API提供云硬盘标签的添加、删除、查询等操作。 OpenStack Cinder API 云硬盘 该部分API提供云硬盘的创建、更新、云硬盘列表查询、镜像列表查询、租户配额查询等操作。 云硬盘Action 该部分API提供云硬盘的扩容、保留、导出镜像、设置启动盘表示等操作。 云硬盘快照 云硬盘快照指的是云硬盘数据在某个时刻的完整拷贝或镜像。 该部分API提供云硬盘快照的创建、快照列表查询、快照元数据更新、快照元数据查询等操作。 云硬盘过户 通过云硬盘过户功能把一个租户的云硬盘过户给另一个租户,过户成功后,该云硬盘就属于接受过户的租户。 该部分API提供云硬盘过户的创建、接受、删除、过户记录查询等操作。
  • 响应示例 状态码: 200 OK { "count" : 1, "volumes" : [ { "attachments" : [ ], "availability_zone" : "xxx", "bootable" : "false", "created_at" : "2016-05-25T02:42:10.856332", "encrypted" : false, "id" : "b104b8db-170d-441b-897a-3c8ba9c5a214", "links" : [ { "href" : "https://volume.localdomain.com:8776/v3/dd14c6ac581f40059e27f5320b60bf2f/volumes/b104b8db-170d-441b-897a-3c8ba9c5a214", "rel" : "self" }, { "href" : "https://volume.localdomain.com:8776/dd14c6ac581f40059e27f5320b60bf2f/volumes/b104b8db-170d-441b-897a-3c8ba9c5a214", "rel" : "bookmark" } ], "metadata" : { "__openstack_region_name" : "pod01.xxx", "quantityGB" : "1", "volInfoUrl" : "fusionstorage://172.30.64.10/0/FEFEEB07D3924CDEA93C612D4E16882D" }, "name" : "zjb_u25_test", "os-vol-host-attr:host" : "pod01.xxx#SATA", "volume_image_metadata" : { }, "os-vol-tenant-attr:tenant_id" : "dd14c6ac581f40059e27f5320b60bf2f", "replication_status" : "disabled", "multiattach" : false, "size" : 1, "status" : "available", "updated_at" : "2016-05-25T02:42:22.341984", "user_id" : "b0524e8342084ef5b74f158f78fc3049", "volume_type" : "SATA", "service_type" : "EVS", "wwn" : " 688860300000d136fa16f48f05992360" } ], "volumes_links" : [ { "href" : "https://volume.localdomain.com:8776/v3/dd14c6ac581f40059e27f5320b60bf2f/volumes/detail?limit=1&marker=b104b8db-170d-441b-897a-3c8ba9c5a214", "rel" : "next" } ] } 状态码: 400 Bad Request { "error" : { "message" : "XXXX", "code" : "XXX" } }
  • URI GET /v3/{project_id}/os-vendor-volumes/detail 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目ID。获取方法请参见"获取项目ID"。 表2 Query参数 参数 是否必选 参数类型 描述 availability_zone 否 String 云硬盘所属的AZ信息。 dedicated_storage_id 否 String 专属存储池ID,可过滤出该专属存储池下的所有云硬盘,必须精确匹配。 dedicated_storage_name 否 String 专属存储池的名字,可过滤出该专属存储池下的所有云硬盘,支持模糊匹配。 id 否 String 云硬盘ID。 ids 否 Array 云硬盘id列表,格式为ids=['id1','id2',...,'idx'],返回“ids”中有效id的云硬盘详情,无效的id会被忽略。 支持查询最多60个id对应的云硬盘详情。 如果“id”和“ids”查询参数同时存在,“id”会被忽略。 limit 否 Integer 返回结果个数限制。 最小值1,最大值1000,默认为1000。返回的结果中记录数不超过limit值。 marker 否 String 分页查询的起始资源id,取值为上一页最后一条查询记录的资源id。 metadata 否 String 云硬盘元数据。 multiattach 否 String 是否为共享云硬盘。 true:表示为共享云硬盘。 false:表示为非共享云硬盘。 name 否 String 云硬盘名称。最大支持64个字符。 offset 否 Integer 偏移量(偏移量为一个大于0小于磁盘总个数的整数,表示查询该偏移量后面的所有的磁盘)。 service_type 否 String 服务类型,仅支持EVS、DSS、DESS。 sort_dir 否 String 降序或升序,默认为“desc”。 desc表示降序。 asc表示升序。 sort_key 否 String 返回结果按该关键字排序(支持id,status,size,created_at等关键字,默认为“created_at”)。 status 否 String 云硬盘状态,具体请参见 云硬盘状态。 volume_type_id 否 String 云硬盘类型ID。通过 查询云硬盘类型列表 可以查到,即volume_types参数说明表格中的“id”。
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。 通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 表3 请求Body参数 参数 是否必选 参数类型 描述 action 是 String 操作标识,当前支持的取值如下: 添加标签:create 缺省值:create 枚举值: create tags 是 Array of Tag objects 标签列表。 表4 Tag 参数 是否必选 参数类型 描述 key 是 String 标签键。同一资源的key值不能重复。 最大长度36个字符。 字符集:A-Z,a-z , 0-9,‘-’,‘_’,UNICODE字符(\u4E00-\u9FFF)。 value 是 String 标签值。 最大长度43个字符。 字符集:A-Z,a-z , 0-9,‘.’,‘-’,‘_’,UNICODE字符(\u4E00-\u9FFF)。
  • 请求示例 添加两个标签给一个指定的云硬盘,一个标签key为key1,value为value1,另一个标签key为key2,value为value3。 POST https://{endpoint}/v2/{project_id}/cloudvolumes/{volume_id}/tags/action { "action" : "create", "tags" : [ { "key" : "key1", "value" : "value1" }, { "key" : "key2", "value" : "value3" } ] }
  • 响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 job_id String 正常返回时返回的任务ID。 状态码: 400 表4 响应Body参数 参数 参数类型 描述 error Error object 出现错误时,返回的错误码。错误码和其对应的含义请参考错误码说明。 表5 Error 参数 参数类型 描述 code String 出现错误时,返回的错误码。错误码和其对应的含义请参考错误码说明。 message String 出现错误时,返回的错误消息。
  • 请求消息体(可选) 该部分可选。请求消息体通常以结构化格式(如JSON或XML)发出,与请求消息头中Content-Type对应,传递除请求消息头之外的内容。若请求消息体中的参数支持中文,则中文字符必须为UTF-8编码。 每个接口的请求消息体内容不同,也并不是每个接口都需要有请求消息体(或者说消息体为空),GET、DELETE操作类型的接口就不需要消息体,消息体具体内容需要根据具体接口而定。 对于获取用户Token接口,您可以从接口的请求部分看到所需的请求参数及参数说明。将消息体加入后的请求如下所示,加粗的斜体字段需要根据实际值填写,其中username为用户名,domainname为用户所属的账号名称,********为用户登录密码,xxxxxxxxxxxxxxxxxx为project的名称,如“cn-north-1”,您可以从地区和终端节点获取。 scope参数定义了Token的作用域,下面示例中获取的Token仅能访问project下的资源。您还可以设置Token的作用域为某个账号下所有资源或账号的某个project下的资源,详细定义请参见获取用户Token。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 POST https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokens Content-Type: application/json { "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "name": "username", "password": "********", "domain": { "name": "domainname" } } } }, "scope": { "project": { "name": "xxxxxxxxxxxxxxxxxx" } } } } 到这里为止这个请求需要的内容就具备齐全了,您可以使用curl、Postman或直接编写代码等方式发送请求调用API。对于获取用户Token接口,返回的响应消息头中的“x-subject-token”就是需要获取的用户Token。有了Token之后,您就可以使用Token认证调用其他API。
  • 请求消息头 附加请求头字段,如指定的URI和HTTP方法所要求的字段。例如定义消息体类型的请求头“Content-Type”,请求鉴权信息等。 详细的公共请求消息头字段请参见表3。 表3 公共请求消息头 名称 描述 是否必选 示例 Host 请求的服务器信息,从服务API的URL中获取。值为hostname[:port]。端口缺省时使用默认的端口,https的默认端口为443。 否 使用AK/SK认证时该字段必选。 code.test.com or code.test.com:443 Content-Type 消息体的类型(格式)。推荐用户使用默认值application/json,有其他取值时会在具体接口中专门说明。 是 application/json Content-Length 请求body长度,单位为Byte。 否 3495 X-Project-Id project id,项目编号。请参考获取项目ID章节获取项目编号。 否 如果是专属云场景采用AK/SK认证方式的接口请求,或者多project场景采用AK/SK认证的接口请求,则该字段必选。 e9993fc787d94b6c886cbaa340f9c0f4 X-Auth-Token 用户Token。 用户Token也就是调用获取用户Token接口的响应值,该接口是唯一不需要认证的接口。 请求响应成功后在响应消息头(Headers)中包含的“X-Subject-Token”的值即为Token值。 否 使用Token认证时该字段必选。 注:以下仅为Token示例片段。 MIIPAgYJKoZIhvcNAQcCo...ggg1BBIINPXsidG9rZ API同时支持使用AK/SK认证,AK/SK认证使用SDK对请求进行签名,签名过程会自动往请求中添加Authorization(签名认证信息)和X-Sdk-Date(请求发送的时间)请求头。 AK/SK认证的详细说明请参见认证鉴权的“AK/SK认证”。 对于获取用户Token接口,由于不需要认证,所以只添加“Content-Type”即可,添加消息头后的请求如下所示。 1 2 POST https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokens Content-Type: application/json
  • 请求URI 请求URI由如下部分组成: {URI-scheme}://{Endpoint}/{resource-path}?{query-string} 尽管请求URI包含在请求消息头中,但大多数语言或框架都要求您从请求消息中单独传递它,所以在此单独强调。 表1 URI中的参数说明 参数 描述 URI-scheme 表示用于传输请求的协议,当前所有API均采用HTTPS协议。 Endpoint 指定承载REST服务端点的服务器域名或IP,不同服务不同区域的Endpoint不同,您可以从地区和终端节点获取。 例如IAM服务在“华北-北京四”区域的Endpoint为“iam.cn-north-4.myhuaweicloud.com”。 resource-path 资源路径,即API访问路径。从具体API的URI模块获取,例如“获取用户Token”API的resource-path为“/v3/auth/tokens”。 query-string 查询参数,是可选部分,并不是每个API都有查询参数。查询参数前面需要带一个“?”,形式为“参数名=参数取值”,例如“?limit=10”,表示查询不超过10条数据。 例如您需要获取IAM在“华北-北京四”区域的Token,则需使用“华北-北京四”区域的Endpoint(iam.cn-north-4.myhuaweicloud.com),并在获取用户Token的URI部分找到resource-path(/v3/auth/tokens),拼接起来如下所示。 1 https://iam.cn-north-4.myhuaweicloud.com/v3/auth/tokens 图1 URI示意图 为方便查看,在每个具体API的URI部分,只给出resource-path部分,并将请求方法写在一起。这是因为URI-scheme都是HTTPS,而Endpoint在同一个区域也相同,所以简洁起见将这两部分省略。
  • 请求方法 HTTP请求方法(也称为操作或动词),它告诉服务您正在请求什么类型的操作。 表2 HTTP方法 方法 说明 GET 请求服务器返回指定资源。 PUT 请求服务器更新指定资源。 POST 请求服务器新增资源或执行特殊操作。 DELETE 请求服务器删除指定资源,如删除对象等。 HEAD 请求服务器资源头部。 PATCH 请求服务器更新资源的部分内容。 当资源不存在的时候,PATCH可能会去创建一个新的资源。 在获取用户Token的URI部分,您可以看到其请求方法为“POST”,则其请求为: 1 POST https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokens
  • URI GET /v2/{project_id}/cloudsnapshots/detail 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目ID。 获取方法请参见"获取项目ID"。 表2 Query参数 参数 是否必选 参数类型 描述 offset 否 Integer 偏移量。 说明:分页查询快照时使用,与limit配合使用。假如共有30个快照,设置offset为11,limit为10,即为从第12个快照开始查询,一次最多可读取10个快照。 limit 否 Integer 返回结果个数限制,值为大于0的整数。默认值为1000。 name 否 String 云硬盘快照名称。最大支持64个字符。 status 否 String 云硬盘快照状态,具体请参见云硬盘快照状态。 volume_id 否 String 快照所属云硬盘的ID。 availability_zone 否 String 快照所属云硬盘的可用区。 id 否 String 指定快照id进行过滤。可以传入多个id过滤查询,格式:id=id1&id=id2&id=id3 dedicated_storage_name 否 String 专属存储的名称。 dedicated_storage_id 否 String 专属存储ID。 service_type 否 String 服务类型。仅支持EVS、DSS、DESS。 enterprise_project_id 否 String 指定企业项目id进行过滤。 传入“all_granted_eps”,代表查询权限范围内的所有企业项目下的云硬盘。 说明: 关于企业项目ID的获取及企业项目特性的详细信息,请参考:"企业管理用户指南"。
  • 请求示例 查询快照id为c311bb8d-17f1-4e99-aaf9-e132c0391a73和c7691083-15fa-4045-956c-2bcbfe1b9976的快照详情,从第1条记录开始查询,返回结果中的记录数不超过100个。 GET https://{endpoint}/v2/{project_id}/cloudsnapshots/detail?id=c311bb8d-17f1-4e99-aaf9-e132c0391a73&id=c7691083-15fa-4045-956c-2bcbfe1b9976&offset=0&limit=100 查询id为f8c7cce6-ec47-43ca-9297-b5604668b08f的云硬盘的所有快照详情。 GET https://{endpoint}/v2/{project_id}/cloudsnapshots/detail?volume_id=f8c7cce6-ec47-43ca-9297-b5604668b08f&service_type=EVS
  • 响应示例 状态码: 200 OK { "count" : 3, "snapshots_links" : [ { "href" : "https://{endpoint}/v2/20a68d6b7a124ae2b6b8a22046ee5966/cloudsnapshots/detail?limit=1&marker=fc05d5d7-7e99-42fb-b6f2-9ddd1b990e67", "rel" : "next" } ], "snapshots" : [ { "status" : "available", "updated_at" : "2018-06-06T10:58:47.349051", "volume_id" : "f687bd70-37b3-4f00-a900-0ba1cfaa5196", "id" : "fc05d5d7-7e99-42fb-b6f2-9ddd1b990e67", "size" : 1, "os-extended-snapshot-attributes:progress" : "100%", "name" : "test03", "os-extended-snapshot-attributes:project_id" : "20a68d6b7a124ae2b6b8a22046ee5966", "service_type" : "EVS", "created_at" : "2018-05-30T03:14:44.457975", "metadata" : { } } ] } 状态码: 400 Bad Request { "error" : { "message" : "XXXX", "code" : "XXX" } }
  • 操作步骤 从快照创建云硬盘,请先查询云硬盘快照列表,获取快照信息。 API:查询云硬盘快照详情列表 请求样例 GET https://{endpoint}/v2/ba546eb46e7247c9aadb566ed7a1d31f/cloudsnapshots/detail 响应样例 { "count": 1, "snapshots": [ { "status": "available", "description": null, "metadata": {}, "size": 40, "id": "0b126d3b-f2af-404d-8d39-a42fce70065a", "name": "snapshot-test", "created_at": "2019-06-18T12:47:33.700070", "updated_at": "2019-06-18T12:47:38.234689", "volume_id": "037cf89a-8cea-4d63-ac57-345c0ffccfc2", "os-extended-snapshot-attributes:project_id": "ba546eb46e7247c9aadb566ed7a1d31f", "os-extended-snapshot-attributes:progress": "100%", "service_type": "EVS" } ] } 回显中的“id”即为快照的ID。 通过快照ID创建云硬盘。 API:创建云硬盘 请求样例 POST https://{endpoint}/v2.1/ba546eb46e7247c9aadb566ed7a1d31f/cloudvolumes { "volume": { "count": 1, "availability_zone": "az-dc-1", "description": "test_volume_1", "size": 120, "snapshot_id": "0b126d3b-f2af-404d-8d39-a42fce70065a", "name": "test_volume_1", "volume_type": "SATA" } } 响应样例 { "job_id": "ff8080816b512df7016b6ab8982b496b" }
  • 响应示例 状态码: 200 OK { "snapshots": [ { "status": "available", "os-extended-snapshot-attributes:progress": "100%", "description": null, "created_at": "2013-06-19T07:15:29.000000", "metadata": {}, "volume_id": "ae11e59c-bd56-434a-a00c-04757e1c066d", "os-extended-snapshot-attributes:project_id": "d6c277ba8820452e83df36f33c9fa561", "size": 5, "id": "6cd26877-3ca3-4f4e-ae2a-38cc3d6183fa", "name": "name_xx2-snap", "updated_at": null, }, { "status": "available", "os-extended-snapshot-attributes:progress": "100%", "description": null, "created_at": "2013-06-19T09:08:08.000000", "metadata": {}, "volume_id": "ae11e59c-bd56-434a-a00c-04757e1c066d", "os-extended-snapshot-attributes:project_id": "d6c277ba8820452e83df36f33c9fa561", "size": 5, "id": "b3253e26-5c37-48dd-8bf2-8795dd1e848f", "name": "name_xx2-snap", "updated_at": null, } ] } 状态码: 400 Bad Request { "error" : { "message" : "XXXX", "code" : "XXX" } }
  • URI GET /v2/{project_id}/snapshots/detail 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目ID。 获取方法请参见"获取项目ID"。 表2 Query参数 参数 是否必选 参数类型 描述 marker 否 String 分页查询的起始资源id,取值为上一页最后一条查询记录的资源id。 volume_id 否 String 云硬盘快照对应的云硬盘ID。 availability_zone 否 String 云硬盘快照对应的云硬盘所在的可用区。 limit 否 Integer 返回结果个数限制。 最小值1,最大值1000,默认为1000。返回的结果中记录数不超过limit值。 当租户所有的快照数量大于50个时,为了提升您的查询效率,建议查询的时候使用limit参数,并且参数值最大设置为50。查询示例: GET /v2/xxx/snapshots/detail?limit=50,表示查询第1~50个快照。GET /v2/xxx/snapshots/detail?offset=50&limit=50,表示查询第51~100个快照。 name 否 String 云硬盘快照名称。最大支持255个字符。 offset 否 Integer 偏移量。 说明: 分页查询快照时使用,与limit配合使用。假如共有30个快照, 设置offset为11,limit为10,即为从第12个快照开始查询, 一次最多可读取10个快照。 status 否 String 云硬盘快照状态,具体请参见云硬盘快照状态。
  • 基本概念 账号 用户注册时的账号,账号对其所拥有的资源及云服务具有完全的访问权限,可以重置用户密码、分配用户权限等。由于账号是付费主体,为了确保账号安全,建议您不要直接使用账号进行日常管理工作,而是创建用户并使用用户进行日常管理工作。 用户 由账号在IAM中创建的用户,是云服务的使用人员,具有身份凭证(密码和访问密钥)。 在我的凭证下,您可以查看账号ID和IAM用户ID。通常在调用API的鉴权过程中,您需要用到账号、用户和密码等信息。 区域(Region) 从地理位置和网络时延维度划分,同一个Region内共享弹性计算、块存储、对象存储、VPC网络、弹性公网IP、镜像等公共服务。Region分为通用Region和专属Region,通用Region指面向公共租户提供通用云服务的Region;专属Region指只承载同一类业务或只面向特定租户提供业务服务的专用Region。 详情请参见区域和可用区。 可用区(AZ,Availability Zone) 一个可用区是一个或多个物理数据中心的集合,有独立的风火水电,AZ内逻辑上再将计算、网络、存储等资源划分成多个集群。一个Region中的多个AZ间通过高速光纤相连,以满足用户跨AZ构建高可用性系统的需求。 项目 区域默认对应一个项目,这个项目由系统预置,用来隔离物理区域间的资源(计算资源、存储资源和网络资源),以默认项目为单位进行授权,用户可以访问您账号中该区域的所有资源。如果您希望进行更加精细的权限控制,可以在区域默认的项目中创建子项目,并在子项目中创建资源,然后以子项目为单位进行授权,使得用户仅能访问特定子项目中的资源,使得资源的权限控制更加精确。 图1 项目隔离模型 同样在我的凭证下,您可以查看项目ID。 企业项目 企业项目是项目的升级版,针对企业不同项目间的资源进行分组和管理,是逻辑隔离。企业项目中可以包含多个区域的资源,且项目中的资源可以迁入迁出。 关于企业项目ID的获取及企业项目特性的详细信息,请参见《企业管理用户指南》。 父主题: 使用前必读
  • 云硬盘标签 本章节仅列出了云硬盘v2接口的授权信息。对于v3接口,如果提供的功能与v2接口一样,则授权信息也一致。 例如:创建云硬盘时,v2接口为POST /v2/{project_id}/cloudvolumes,对应的v3接口为POST /v3/{project_id}/cloudvolumes,两个接口支持的授权信息一致。 授权项列表中,“√”表示支持,“×”表示暂不支持。 权限 对应API接口 授权项(Action) IAM项目 (Project) 企业项目 (Enterprise Project) 获取云硬盘资源的所有标签 GET /v2/{project_id}/cloudvolumes/tags 云硬盘:evs:volumeTags:list 备份:evs:backupTags:list √ × 为指定云硬盘批量添加标签 POST /v2/{project_id}/cloudvolumes/{volume_id}/tags/action evs:volumeTags:create √ × 为指定云硬盘批量删除标签 POST /v2/{project_id}/cloudvolumes/{volume_id}/tags/action evs:volumeTags:delete √ × 查询云硬盘标签 GET /v2/{project_id}/cloudvolumes/{volume_id}/tags evs:volumeTags:getById √ × 通过标签查询云硬盘资源实例详情 POST /v2/{project_id}/cloudvolumes/resource_instances/action evs:volumeTags:get √ × 父主题: 权限和授权项
  • 响应示例 状态码: 200 OK { "volumes" : [ { "attachments" : [ ], "availability_zone" : "az-dc-1", "bootable" : "false", "consistencygroup_id" : null, "created_at" : "2016-05-25T02:42:10.856332", "description" : null, "encrypted" : false, "id" : "b104b8db-170d-441b-897a-3c8ba9c5a214", "links" : [ { "href" : "https://volume.localdomain.com:8776/v2/dd14c6ac581f40059e27f5320b60bf2f/volumes/b104b8db-170d-441b-897a-3c8ba9c5a214", "rel" : "self" }, { "href" : "https://volume.localdomain.com:8776/dd14c6ac581f40059e27f5320b60bf2f/volumes/b104b8db-170d-441b-897a-3c8ba9c5a214", "rel" : "bookmark" } ], "metadata" : { }, "name" : "zjb_u25_test", "os-vol-host-attr:host" : "pod01.xxx#SATA", "volume_image_metadata" : { }, "os-vol-mig-status-attr:migstat" : null, "os-vol-mig-status-attr:name_id" : null, "os-vol-tenant-attr:tenant_id" : "dd14c6ac581f40059e27f5320b60bf2f", "os-volume-replication:extended_status" : null, "replication_status" : "disabled", "multiattach" : false, "size" : 1, "snapshot_id" : null, "source_volid" : null, "status" : "available", "updated_at" : "2016-05-25T02:42:22.341984", "user_id" : "b0524e8342084ef5b74f158f78fc3049", "volume_type" : "SATA" } ], "volumes_links" : [ { "href" : "https://volume.localdomain.com:8776/v2/dd14c6ac581f40059e27f5320b60bf2f/volumes/detail?limit=1&marker=b104b8db-170d-441b-897a-3c8ba9c5a214", "rel" : "next" } ] } 状态码: 400 Bad Request { "error" : { "message" : "XXXX", "code" : "XXX" } }
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 volumes Array of VolumeDetail objects 查询请求返回的云硬盘列表。 volumes_links Array of Link objects 云硬盘列表查询位置标记。如果本次查询只返回部分列表信息时,会返回查询到的当前云硬盘mark标记的url,可以继续使用这个url查询剩余列表信息。 表5 VolumeDetail 参数 参数类型 描述 id String 云硬盘ID。 links Array of Link objects 云硬盘uri自描述信息。 name String 云硬盘名称。 status String 云硬盘状态。 云硬盘状态,具体请参见云硬盘状态。 attachments Array of VolumeAttachment objects 是否挂载信息。 availability_zone String 云硬盘所属AZ。 source_volid String 源云硬盘ID,如果是从源云硬盘创建,则有值。 当前云硬盘服务不支持该字段。 snapshot_id String 快照ID,如果是从快照创建,则有值。 description String 云硬盘描述。 bootable String 是否为启动云硬盘。 true:表示为启动云硬盘。 false:表示为非启动云硬盘。 encrypted Boolean 当前云硬盘服务不支持该字段。 created_at String 云硬盘创建时间。 时间格式:UTC YYYY-MM-DDTHH:MM:SS.XXXXXX volume_type String 云硬盘类型。 目前支持"SATA","SAS","GPSSD","SSD","ESSD","GPSSD2","ESSD2"七种。 "SATA"为普通IO云硬盘(已售罄) "SAS"为高IO云硬盘 "GPSSD"为通用型SSD云硬盘 "SSD"为超高IO云硬盘 "ESSD"为极速IO云硬盘 "GPSSD2"为通用型SSD V2云硬盘 "ESSD2"为极速型SSD V2云硬盘 replication_status String 预留属性。 consistencygroup_id String 预留属性。 metadata VolumeMetadata object 云硬盘的元数据。 如果元数据中不包含hw:passthrough字段,云硬盘默认为VBD类型。 如果元数据中不包含__system__encrypted字段,云硬盘默认为不加密。 size Integer 云硬盘大小,单位为GiB。 user_id String 预留属性。 updated_at String 云硬盘更新时间。 时间格式:UTC YYYY-MM-DDTHH:MM:SS.XXXXXX shareable Boolean 是否为可共享云硬盘。 说明: 该字段已经废弃,请使用multiattach。 multiattach Boolean 是否为可共享云硬盘。 os-vol-tenant-attr:tenant_id String 云硬盘所属的租户ID。租户ID就是项目ID。 volume_image_metadata Object 云硬盘镜像的元数据。 关于“volume_image_metadata”字段的详细说明,具体请参见:"查询镜像详情"。 os-vol-host-attr:host String 预留属性。 os-volume-replication:extended_status String 预留属性。 os-vol-mig-status-attr:migstat String 预留属性。 os-vol-mig-status-attr:name_id String 预留属性。 iops iops object 云硬盘的iops信息,云硬盘类型是ESSD2、GPSSD2才返回。 throughput throughput object 云硬盘的吞吐量信息,云硬盘类型是GPSSD2才返回。 表6 VolumeAttachment 参数 参数类型 描述 attached_at String 挂载的时间信息。 时间格式:UTC YYYY-MM-DDTHH:MM:SS.XXXXXX attachment_id String 挂载信息对应的ID。 device String 挂载点 host_name String 云硬盘挂载到的云服务器云主机对应 的物理主机的名称。 id String 挂载的资源ID server_id String 云硬盘挂载到的云服务器云主机的 ID。 volume_id String 云硬盘ID 表7 VolumeMetadata 参数 参数类型 描述 __system__cmkid String metadata中的加密cmkid字段,与__system__encrypted配合表示需要加密,cmkid长度固定为36个字节。 说明: 请参考 查询密钥列表,通过HTTPS请求获取密钥ID。 __system__encrypted String metadata中的表示加密功能的字段,0代表不加密,1代表加密。 该字段不存在时,云硬盘默认为不加密。 full_clone String 从快照创建云硬盘时,如需使用link克隆方式,请指定该字段的值为0。 hw:passthrough String true表示云硬盘的设备类型为SCSI类型,即允许ECS操作系统直接访问底层存储介质。支持SCSI锁命令。 false表示云硬盘的设备类型为VBD (虚拟块存储设备 , Virtual Block Device)类型,即为默认类型,VBD只能支持简单的SCSI读写命令。 该字段不存在时,云硬盘默认为VBD类型。 表8 iops 参数 参数类型 描述 frozened Boolean 冻结标签。 缺省值:false id String 云硬盘iops标识。 total_val Integer iops大小。 volume_id String 云硬盘ID。 表9 throughput 参数 参数类型 描述 frozened Boolean 冻结标签。 缺省值:false id String 云硬盘吞吐量标识。 total_val Integer 吞吐量大小。 volume_id String 云盘ID。 表10 Link 参数 参数类型 描述 href String 对应的快捷链接。 rel String 快捷链接标记名称。 缺省值:next 状态码: 400 表11 响应Body参数 参数 参数类型 描述 error Error object 出现错误时,返回的错误信息。 表12 Error 参数 参数类型 描述 code String 出现错误时,返回的错误码。 错误码和其对应的含义请参考错误码说明。 message String 出现错误时,返回的错误消息。
  • URI GET /v3/{project_id}/volumes/detail 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目ID。 获取方法请参见"获取项目ID"。 表2 Query参数 参数 是否必选 参数类型 描述 marker 否 String 取值为上一页数据的最后一条记录的id,返回值为该项后面的项 name 否 String 云硬盘名称。最大支持64个字符。 limit 否 Integer 返回结果个数限制。 最小值1,最大值1000,默认为1000。返回的结果中记录数不超过limit值。 当租户所有的云硬盘数量大于50个时,为了提升您的查询效率,建议查询的时候使用limit参数,并且参数值最大设置为50。查询示例: GET /v2/xxx/volumes/detail?limit=50,表示查询第1~50个云硬盘。GET /v2/xxx/volumes/detail?offset=50&limit=50,表示查询第51~100个云硬盘。 sort_key 否 String 返回结果按该关键字排序,支持id,status,size,created_at等关键字,默认为“created_at”。 sort_dir 否 String 返回结果按照降序或升序排列,默认为“desc”。 降序:desc 升序:asc offset 否 Integer 偏移量 偏移量为一个大于0小于磁盘总个数的整数,表示查询该偏移量后面的所有的云硬盘。 status 否 String 云硬盘状态 metadata 否 String 云硬盘元数据。该参数通过Json格式进行传参,如:GET /v3/{project_id}/volumes/detail?metadata={"hw:passthrough": "true"} availability_zone 否 String AZ信息
  • 响应示例 状态码: 200 OK { "snapshot": { "status": "available", "os-extended-snapshot-attributes:progress": "100%", "description": "daily backup", "created_at": "2013-02-25t04:13:17.000000", "metadata": {}, "volume_id": "5aa119a8-d25b-45a7-8d1b-88e127885635", "os-extended-snapshot-attributes:project_id": "0c2eba2c5af04d3f9e9d0d410b371fde", "size": 1, "id": "2bb856e1-b3d8-4432-a858-09e4ce939389", "name": "snap-001", "updated_at": null, } } 状态码: 400 Bad Request { "error" : { "message" : "XXXX", "code" : "XXX" } }
共100000条