文档首页/ 弹性云服务器 ECS/ API参考/ 数据结构/ 数据结构(创建云服务器)
更新时间:2024-08-12 GMT+08:00

数据结构(创建云服务器)

使用须知

自研的创建云服务器接口支持有v1和v1.1两个版本,其中v1只能创建按需的云服务器,v1.1可以创建按需和包年/包月虚拟机。

下面数据结构中的字段,当选择包年/包月计费模式时(包年包月的),请选择使用v1.1的创建云服务器接口。

publicip字段数据结构说明

该字段被如下接口使用
  • 创建云服务器 /v1/{project_id}/cloudservers
  • 创建云服务器 /v1.1/{project_id}/cloudservers
表1 publicip字段数据结构说明

参数

是否必选

参数类型

描述

id

String

为待创建云服务器分配已有弹性公网IP时,分配的弹性公网IP的ID,UUID格式。

约束:只能分配状态(status)为DOWN的弹性公网IP

eip

Object

配置云服务器自动分配弹性公网IP时,创建弹性公网IP的配置参数。

详情请参见表3

delete_on_termination

Boolean

弹性公网IP随实例释放策略。

  • true:弹性公网IP随实例释放。
  • false:弹性公网IP不随实例释放。

默认值:false。

说明:

该字段仅按需弹性公网IP支持。

输入publicip字段数据结构中的id和eip的值时,只能选择其中一个参数值输入。

security_groups字段数据结构说明

该字段被如下接口使用

  • 创建云服务器 /v1/{project_id}/cloudservers
  • 创建云服务器 /v1.1/{project_id}/cloudservers
表2 security_groups字段数据结构说明

参数

是否必选

参数类型

描述

id

String

待创建云服务器的安全组,会对创建云服务器中配置的网卡生效。需要指定已有安全组的ID,UUID格式;若不传id字段,底层会创建默认安全组。

eip字段数据结构说明

该字段被如下接口使用
  • 创建云服务器 /v1/{project_id}/cloudservers
  • 创建云服务器 /v1.1/{project_id}/cloudservers
表3 eip字段数据结构说明

参数

是否必选

参数类型

描述

iptype

String

弹性公网IP地址类型。

详情请参见“申请弹性公网IP”章节的“publicip”字段说明。

bandwidth

Object

弹性公网IP地址带宽参数。

详情请参见bandwidth字段数据结构说明

extendparam

Object

创建弹性公网IP的附加信息。

详情请参见表6

说明:

当创建云服务器的extendparam结构中chargingMode为prePaid时(即创建包年包月付费的云服务器),若需要创建按需计费的弹性IP,该字段必选,需要在该结构中增加chargingMode为postPaid(按需付费)。

bandwidth字段数据结构说明

该字段被如下接口使用
  • 创建云服务器 /v1/{project_id}/cloudservers
  • 创建云服务器 /v1.1/{project_id}/cloudservers
表4 bandwidth字段数据结构说明

参数

是否必选

参数类型

描述

size

Integer

功能说明:带宽大小

带宽(Mbit/s),取值范围为[1,300]。

具体范围以各区域配置为准,请参见控制台对应页面显示。

调整带宽时的最小单位会根据带宽范围不同存在差异。
  • 小于等于300Mbit/s:默认最小单位为1Mbit/s。
  • 300Mbit/s~1000Mbit/s:默认最小单位为50Mbit/s。
  • 大于1000Mbit/s:默认最小单位为500Mbit/s。
说明:

如果share_type是PER,该参数必选项;如果share_type是WHOLE并且id有值,该参数会忽略。

sharetype

String

带宽的共享类型。

共享类型枚举:PER,表示独享。WHOLE,表示共享。

chargemode

String

带宽的计费类型。

  • 字段值为“traffic”,表示按流量计费。
  • 字段为其它值,会导致创建云服务器失败。

id

String

带宽ID,创建WHOLE类型带宽的弹性IP时可以指定之前的共享带宽创建。

取值范围:WHOLE类型的带宽ID。

说明:

当创建WHOLE类型的带宽时,该字段必选。

ipv6_bandwidth字段数据结构说明

该字段被如下接口使用
  • 创建云服务器 /v1/{project_id}/cloudservers
  • 创建云服务器 /v1.1/{project_id}/cloudservers
表5 ipv6_bandwidth字段数据结构说明

参数

是否必选

参数类型

描述

id

String

IPv6带宽的ID。

创建弹性公网IP的extendparam字段数据结构说明

该字段被如下接口使用:

创建云服务器 /v1.1/{project_id}/cloudservers

表6 创建弹性公网IP的extendparam字段数据结构说明

名称

是否必选

参数类型

说明

chargingMode

String

公网IP的计费模式。

取值范围:

  • prePaid-预付费,即包年包月;
  • postPaid-后付费,即按需付费;
    说明:

    如果bandwidth对象中share_type是WHOLE且id有值,弹性公网IP只能创建为按需付费的,故该参数传参“prePaid”无效。

创建磁盘的extendparam字段数据结构说明

该字段被如下接口使用:

  • 创建云服务器 /v1/{project_id}/cloudservers
  • 创建云服务器 /v1.1/{project_id}/cloudservers
表7 创建磁盘的extendparam字段数据结构说明

参数

是否必选

参数类型

描述

resourceSpecCode

String

磁盘产品资源规格编码,如SATA,SAS和SSD。

说明:

废弃字段。

resourceType

String

磁盘产品资源类型。

说明:

废弃字段。

snapshotId

String

整机镜像中自带的原始数据盘(简称“原数据盘”)所对应的快照ID或原始数据盘ID。

使用场景

使用整机镜像创建云服务器,并且选择的整机镜像自带1个或者多个数据盘。

使用整机镜像创建云服务器时,系统会自动恢复整机镜像中自带的数据盘(包括数据盘类型和数据)。此时,您可以通过snapshotId,修改指定原数据盘恢复后的磁盘类型。

说明:
  • 建议对每块原数据盘都指定snapshotId。
  • 如需修改磁盘大小,修改后的磁盘大小需大于等于原数据盘大小。否则,会影响原数据盘的数据恢复。
  • 如需设置磁盘共享,需指定共享属性。
  • 如需设置磁盘加密,需在metadata字段指定相关加密属性。

实现原理

snapshotId是整机镜像自带原始数据盘的唯一标识,通过snapshotId可以获取原数据盘的磁盘信息,从而恢复数据盘数据。

通过管理控制台获取snapshotId

登录管理控制台,打开"云硬盘 > 快照"页面,根据原始数据盘的磁盘名称找到对应的快照ID或者原始数据盘的ID。

通过API查询snapshotId

已知整机镜像ID,参考镜像服务的“查询镜像详情”接口获取整机镜像ID关联的云备份或云服务器备份ID。
  • 如果使用的是云备份,请使用云备份ID查询备份信息,响应信息children字段中包含的resource_id或snapshot_id即为所需的snapshotId。详细操作请参考云备份服务“查询指定备份”接口。
  • 如果使用的是云服务器备份,请使用云服务器备份ID查询备份信息,响应信息volume_backups字段中包含的source_volume_id或snapshot_id即为所需的snapshotId。详细操作请参考云服务器备份“查询单个备份”接口。

创建云服务器的extendparam字段数据结构说明

该字段被如下接口使用:
  • 创建云服务器 /v1/{project_id}/cloudservers
  • 创建云服务器 /v1.1/{project_id}/cloudservers
表8 创建云服务器的extendparam字段数据结构说明(适用V1接口)

参数

是否必选

参数类型

描述

chargingMode

Integer

计费模式:

  • 0:按需计费。(默认值是0)

regionID

String

云服务器所在区域ID。

请参考地区和终端节点获取。

support_auto_recovery

Boolean

是否配置云服务器自动恢复的功能。

  • “true”:配置该功能
  • “false”:不配置该功能
说明:

此参数为boolean类型,若传入非boolean类型字符,程序将按照“false”:不配置该功能的方式处理。

当support_auto_recovery=false,flavor中不存在"cond:compute": autorecovery 不支持自动恢复功能。

当support_auto_recovery=false,flavor中存在“cond:compute": autorecovery 仍支持自动恢复功能。

“cond:compute": autorecovery可通过查询规格详情和规格扩展信息列表查询。

enterprise_project_id

String

企业项目ID。

说明:

关于企业项目ID的获取及企业项目特性的详细信息,请参见《企业管理服务用户指南》。

该字段不传(或传为字符串“0”),则将资源绑定给默认企业项目。

marketType

String

创建竞价实例时,需指定该参数的值为“spot”。

说明:

当chargingMode=0时且marketType=spot时此参数生效。

spotPrice

String

用户愿意为竞价实例每小时支付的最高价格。

说明:
  • 仅chargingMode=0且marketType=spot时,该参数设置后生效。
  • 当chargingMode=0且marketType=spot时,如果不传递spotPrice,默认使用按需购买的价格作为竞价。
  • spotPrice 需要小于等于按需价格 并要大于等于云服务器市场价格。

diskPrior

String

是否支持先创建卷,再创建虚拟机。

  • “true”:配置该功能
  • “false”:不配置该功能

spot_duration_hours

Integer

购买的竞价实例时长。

说明:
  • 竞享实例必传且当interruption_policy=immediate时,该字段有效 。
  • spot_duration_hours大于0。最大值由预测系统给出可以从flavor的extra_specs的cond:spot_block:operation:longest_duration_hours字段中查询。

spot_duration_count

Integer

表示购买的“竞价实例时长”的个数。

说明:
  • 适用于竞享实例且当spot_duration_hours>0时,该字段有效。
  • spot_duration_hours小于6时,spot_duration_count值必须为1。
  • spot_duration_hours等于6时,spot_duration_count大于等于1。

    spot_duration_count的最大值由预测系统给出可以从flavor的extra_specs的cond:spot_block:operation:longest_duration_count字段中查询。

interruption_policy

String

竞价实例中断策略,当前支持immediate(立即释放)。

说明:

当实例为竞享模式时,必须设置为immediate

CB_CSBS_BACKUP

String

云备份策略和云备份存储库详情,取值包含备份策略ID和云备份存储库ID。

例如:在控制台查询备份策略ID为:fdcaa27d-5be4-4f61-afe3-09ff79162c04

云备份存储库ID为:332a9408-463f-436a-9e92-78dad95d1ac4

则CB_CSBS_BACKUP取值为:"{\"policy_id\":\"fdcaa27d-5be4-4f61-afe3-09ff79162c04\",\"vault_id\":\"332a9408-463f-436a-9e92-78dad95d1ac4\"}"

表9 创建云服务器的extendparam字段数据结构说明(适用V1.1接口)

名称

是否必选

参数类型

说明

chargingMode

String

计费模式。

功能说明:付费方式

取值范围:

  • prePaid-预付费,即包年包月;
  • postPaid-后付费,即按需付费;
  • 默认值是postPaid
    说明:

    当chargingMode为prePaid(即创建包年包月付费的云服务器),且使用SSH密钥方式登录云服务器时,metadata 中的 op_svc_userid 字段为必选字段。

regionID

String

云服务器所在区域ID。

请参考地区和终端节点获取。

periodType

String

订购周期类型。

取值范围:

  • month-月
  • year-年
    说明:

    chargingMode为prePaid时生效且为必选值。

periodNum

Integer

订购周期数。

取值范围:

  • periodType=month(周期类型为月)时,取值为[1,2,3,4,5,6,7,8,9];
  • periodType=year(周期类型为年)时,取值为[1,2,3];
说明:
  • chargingMode为prePaid时生效且为必选值。
  • periodNum为正整数。
  • 根据华为云ECS产品定价规则,1年ECS(包年)价格=10个月ECS(包月)价格,因此购买包月时长超过9个月时,可直接购买包年ECS产品。

isAutoRenew

String

是否自动续订。

  • “true”:自动续订
  • “false”:不自动续订
    说明:

    chargingMode为prePaid时生效,不传该字段时默认为不自动续订。

isAutoPay

String

下单订购后,是否自动从客户的账户中支付,而不需要客户手动去进行支付。

  • “true”:是(自动支付)
  • “false”:否(需要客户手动支付)
说明:

chargingMode为prePaid时生效,不传该字段时默认为客户手动支付。

enterprise_project_id

String

企业项目ID。

说明:

关于企业项目ID的获取及企业项目特性的详细信息,请参见《企业管理服务用户指南》。

该字段不传(或传为字符串“0”),则将资源绑定给默认企业项目。

support_auto_recovery

Boolean

是否配置虚拟机自动恢复的功能。

  • “true”:配置该功能
  • “false”:不配置该功能
说明:

此参数为boolean类型,若传入非boolean类型字符,程序将按照【“false”:不配置该功能】方式处理。

marketType

String

创建竞价实例时,需指定该参数的值为“spot”。

说明:

当chargingMode=postPaid且marketType=spot时,此参数生效。

spotPrice

String

用户愿意为竞价云服务器每小时支付的最高价格。

说明:
  • 仅chargingMode=postPaid且marketType=spot时,该参数设置后生效。
  • 当chargingMode=postPaid且marketType=spot时,如果不传递spotPrice或者传递一个空字符串,默认使用按需购买的价格作为竞价。
  • spotPrice 需要小于等于按需价格 并要大于等于云服务器市场价格。

diskPrior

String

是否支持先创建卷,再创建虚拟机。

  • “true”:配置该功能
  • “false”:不配置该功能

spot_duration_hours

Integer

购买的竞价实例时长。

说明:
  • 竞享实例必传且当interruption_policy=immediate时,该字段有效 。
  • spot_duration_hours大于0。最大值由预测系统给出可以从flavor的extra_specs的cond:spot_block:operation:longest_duration_hours字段中查询。

spot_duration_count

Integer

表示购买的“竞价实例时长”的个数。

说明:
  • 适用于竞享实例且当spot_duration_hours>0时,该字段有效。
  • spot_duration_hours小于6时,spot_duration_count值必须为1。
  • spot_duration_hours等于6时,spot_duration_count大于等于1。

    spot_duration_count的最大值由预测系统给出可以从flavor的extra_specs的cond:spot_block:operation:longest_duration_count字段中查询。

interruption_policy

String

竞价实例中断策略,当前支持immediate(立即释放)。

说明:

当实例为竞享模式时,必须设置为immediate

CB_CSBS_BACKUP

String

云备份策略和云备份存储库详情,取值包含备份策略ID和云备份存储库ID。

例如:在控制台查询备份策略ID为:fdcaa27d-5be4-4f61-afe3-09ff79162c04

云备份存储库ID为:332a9408-463f-436a-9e92-78dad95d1ac4

则CB_CSBS_BACKUP取值为:"{\"policy_id\":\"fdcaa27d-5be4-4f61-afe3-09ff79162c04\",\"vault_id\":\"332a9408-463f-436a-9e92-78dad95d1ac4\"}"

创建磁盘的metadata字段数据结构说明

该字段被如下接口使用:

  • 创建云服务器 /v1/{project_id}/cloudservers
  • 创建云服务器 /v1.1/{project_id}/cloudservers
  • 创建云服务器时,root_volume和data_volume都包含metadata字段。
表10 创建磁盘的metadata字段数据结构说明

参数

是否必选

参数类型

描述

__system__encrypted

String

metadata中的表示加密功能的字段,0代表不加密,1代表加密。

该字段不存在时,云硬盘默认为不加密。

__system__cmkid

String

用户主密钥ID,是metadata中的表示加密功能的字段,与__system__encrypted配合使用。

说明:

请参考查询密钥列表,通过HTTPS请求获取密钥ID。

创建云服务器的metadata字段数据结构说明

该字段被如下接口使用:

  • 创建云服务器 /v1/{project_id}/cloudservers
  • 创建云服务器 /v1.1/{project_id}/cloudservers
表11 metadata预留字段数据结构说明

参数

是否必选

参数类型

描述

op_svc_userid

String

用户ID。

说明:

当extendparam结构中的chargingMode为prePaid(即创建包年包月付费的云服务器),且使用SSH密钥方式登录云服务器时,该字段为必选字段。

agency_name

String

委托的名称。

委托是由租户管理员在统一身份认证服务(Identity and Access Management,IAM)上创建的,可以为弹性云服务器提供访问云服务的临时凭证。

BYOL

String

如果您已拥有操作系统或软件的许可证(一般是指按物理插槽数、物理内核数等进行认证的许可证),您可以通过自带许可(BYOL)的方式将业务完整迁移到云平台,继续使用您的许可证。
  • true: 使用自有license
  • 其他值: 视为非法参数,接口报错

os:scheduler_hints字段数据结构说明

该字段被如下接口使用:
  • 创建云服务器 /v1/{project_id}/cloudservers
  • 创建云服务器 /v1.1/{project_id}/cloudservers
  • 创建云服务器(原生) /v2.1/{project_id}/servers
表12 os:scheduler_hints字段数据结构说明(请求参数)

参数

是否必选

参数类型

描述

group

String

云服务器组ID,UUID格式。

云服务器组的ID可以从控制台或者参考查询云服务器组列表获取。

说明:

请确保云服务器组使用的是反亲和性anti-affinity策略,不推荐使用其他策略。

tenancy

String

在指定的专属主机或者共享主机上创建弹性云服务器

参数值为shared或者dedicated。

dedicated_host_id

String

专属主机的ID。

说明:

专属主机的ID仅在tenancy为dedicated时生效。

表13 os:scheduler_hints字段数据结构说明(响应参数)

参数

参数类型

描述

group

Array of strings

云服务器组ID,UUID格式。

云服务器组的ID可以从控制台或者参考查询云服务器组列表获取。

tenancy

Array of strings

在指定的专属主机或者共享主机上创建弹性云服务器

参数值为shared或者dedicated。

dedicated_host_id

Array of strings

专属主机的ID。

说明:

专属主机的ID仅在tenancy为dedicated时生效。

server_tags字段数据结构说明

该字段被如下接口使用:
  • 创建云服务器 /v1/{project_id}/cloudservers
  • 创建云服务器 /v1.1/{project_id}/cloudservers
表14 server_tags字段数据结构说明

参数

是否必选

参数类型

描述

key

String

键。

最大长度36个unicode字符。key不能为空。不能包含非打印字符ASCII(0-31),"=", "*",“<”,“>”,“\”,“,”,“|”,“/”。

同一资源的key值不能重复。

value

String

值。

每个值最大长度43个unicode字符,可以为空字符串。 不能包含非打印字符ASCII(0-31),“=”,“*”,“<”,“>”,“\”,“,”,“|”。