文档首页> > API参考> API> 生命周期管理> 创建云服务器

创建云服务器

更新时间: 2018-11-19 16:52

功能介绍

创建一台或多台按需付费方式的云服务器。

URI

POST /v1/{project_id}/cloudservers

参数说明请参见 表1
表1 参数说明

参数

是否必选

描述

project_id

项目ID。

获取方法请参见获取项目ID

请求消息

请求参数

请求参数如表2所示。

表2 请求参数

参数

是否必选

参数类型

描述

server

Dict

弹性云服务器信息,请参见表3

表3 创建云服务器请求参数说明

参数

是否必选

参数类型

描述

imageRef

String

待创建云服务器的系统镜像,需要指定已创建镜像的ID,ID格式为通用唯一识别码(Universally Unique Identifier,简称UUID)。

flavorRef

String

待创建云服务器的系统规格的ID,已上线的规格请参见《弹性云服务器用户指南》的“实例和应用场景”章节。

name

String

云服务器名称。

取值范围:

  • 只能由中文字符、英文字母、数字及“_”、“-”、“.”组成,且长度为[1-64]个字符。
  • 创建的云服务器数量(count字段对应的值)大于1时,为区分不同云服务器,创建过程中系统会自动在名称后加“-0000”的类似标记。故此时名称的长度为[1-59]个字符。
    说明:

    华为云服务器虚拟机内部(hostname)命名规则遵循 RFC 952RFC 1123命名规范,建议使用a-zA-z或0-9以及中划线"-"组成的名称命名,"_"将在虚拟机内部默认转化为"-"。

user_data

String

创建云服务器过程中注入用户数据。支持注入文本、文本文件或gzip文件。更多关于待注入用户数据的信息,请参见用户数据注入

约束:

  • 注入内容,需要进行base64格式编码。注入内容(编码之前的内容)最大长度32KB。
  • 对于Linux弹性云服务器,adminPass参数传入时,user_data参数不生效。

示例:

  • Linux弹性云服务器
    #! /bin/bash
    echo user_test >> /home/user.txt 
  • Windows弹性云服务器
    rem cmd
    echo 111 > c:\aaa.tx

adminPass

String

如果需要使用密码方式登录云服务器,可使用adminPass字段指定云服务器管理员帐户初始登录密码。其中,Linux管理员帐户为root,Windows管理员帐户为Administrator。

密码复杂度要求:
  • 长度为8-26位。
  • 密码至少必须包含大写字母、小写字母、数字和特殊字符(!@$%^-_=+[{}]:,./?)中的三种。
  • 密码不能包含用户名或用户名的逆序。
  • Windows系统密码不能包含用户名或用户名的逆序,不能包含用户名中超过两个连续字符的部分。

key_name

String

如果需要使用SSH密钥方式登录云服务器,请指定已创建密钥的名称。

vpcid

String

待创建云服务器所属虚拟私有云(简称VPC),需要指定已创建VPC的ID,UUID格式。

nics

列表数据结构

待创建云服务器的网卡信息。详情请参见表4

约束:

  • 网卡对应的网络(network)必须属于vpcid对应的VPC。
  • 当前单个云服务器支持最多挂载12张网卡。

publicip

字典数据结构

配置云服务器的弹性IP信息,弹性IP有三种配置方式。

  • 不使用(无该字段)
  • 自动分配,需要指定新创建弹性IP的信息
  • 使用已有,需要指定已创建弹性IP的信息

详情请参见表5

count

Integer

创建云服务器数量。

约束:

  • 不传该字段时默认取值为1。
  • 租户的配额足够时,最大值为500。

isAutoRename

Boolean

云服务器名称是否允许重名。

  • True,表示允许重名。
  • False,表示不允许重名。

root_volume

字典数据结构

云服务器对应系统盘相关配置。

详情请参见表6

data_volumes

列表数据结构

云服务器对应数据盘相关配置。每一个数据结构代表一块待创建的数据盘。

约束:目前新创建的弹性云服务器最多可挂载23块数据盘。

详情请参见表7

security_groups

列表数据结构

云服务器对应安全组信息。

约束:当该值指定为空时,默认给云服务器绑定default安全组。

详情请参见表8

availability_zone

String

待创建云服务器所在的可用分区,需要指定可用分区(AZ)的名称。

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

extendparam

字典数据结构

创建云服务器附加信息。

详情请参见表12

metadata

字典数据结构

创建云服务器元数据。

os:scheduler_hints

字典数据结构

云服务器调度信息。

详情请参见表13

tags

列表数据结构

弹性云服务器的标签。

标签的格式为“key.value”。其中,key的长度不超过36个字符,value的长度不超过43个字符。

标签命名时,需满足如下要求:

  • 标签的key值只能包含大写字母(A~Z)、小写字母(a~z)、数字(0-9)、下划线(_)、中划线(-)以及中文字符。
  • 标签的value值只能包含大写字母(A~Z)、小写字母(a~z)、数字(0-9)、下划线(_)、中划线(-)、小数点(.)以及中文字符。
说明:
  • 创建弹性云服务器时,一台弹性云服务器最多可以添加10个标签。
  • 公有云新增server_tags字段,该字段与tags字段功能相同,支持的key、value取值范围更广,建议使用server_tags字段。

server_tags

列表数据结构

弹性云服务器的标签。详情请参见表14

说明:
  • 创建弹性云服务器时,一台弹性云服务器最多可以添加10个标签。
  • 公有云新增server_tags字段,该字段与tags字段功能相同,支持的key、value取值范围更广,建议使用server_tags字段。

description

String

云服务器描述信息,默认为空字符串。

  • 长度最多允许85个字符。
  • 不能包含“<” 和 “>”等特殊符号。
表4 nics字段数据结构说明

参数

是否必选

参数类型

描述

subnet_id

String

待创建云服务器的网卡信息。

需要指定vpcid对应VPC下已创建的网络(network)的ID,UUID格式。

ip_address

String

待创建云服务器网卡的IP地址,IPv4格式。

约束:

  • 不填或空字符串,默认在网络(network)对应的子网(subnet)中自动分配一个未使用的IP作网卡的IP地址。
  • 若指定IP地址,该IP地址必须在网络(network)对应的子网的网段内,且未被使用。
表5 publicip字段数据结构说明

参数

是否必选

参数类型

描述

id

String

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

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

eip

字典数据结构

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

详情请参见表9

说明:

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

表6 root_volume字段数据结构说明

参数

是否必选

参数类型

描述

volumetype

String

云服务器系统盘对应的磁盘类型,需要与系统所提供的磁盘类型相匹配。

  • SATA:普通IO磁盘类型。
  • SAS:高IO磁盘类型。
  • SSD:超高IO磁盘类型。
  • co-p1:高IO (性能优化Ⅰ型)
  • uh-l1:超高IO (时延优化)
说明:

对于HANA云服务器、HL1型云服务器、HL2型云服务器,需使用co-p1和uh-l1两种磁盘类型。对于其他类型的云服务器,不能使用co-p1和uh-l1两种磁盘类型。

size

Integer

系统盘大小,容量单位为GB, 输入大小范围为[1,1024]。

约束:

  • 系统盘大小取值应不小于镜像支持的系统盘的最小值(镜像的min_disk属性)。
  • 若该参数没有指定或者指定为0,系统盘大小默认取值为镜像中系统盘的最小值(镜像的min_disk属性)。

extendparam

字典数据结构

磁盘的产品信息。

详情请参见表11

表7 data_volumes字段数据结构说明

参数

是否必选

参数类型

描述

volumetype

String

云服务器数据盘对应的磁盘类型,需要与系统所提供的磁盘类型相匹配。

磁盘类型枚举值:

  • SATA:普通IO磁盘类型。
  • SAS:高IO磁盘类型。
  • SSD:超高IO磁盘类型。
  • co-p1:高IO (性能优化Ⅰ型)磁盘类型。
  • uh-l1:超高IO (时延优化)磁盘类型。
说明:

对于HANA云服务器、HL1型云服务器、HL2型云服务器,需使用co-p1和uh-l1两种磁盘类型。对于其他类型的云服务器,不能使用co-p1和uh-l1两种磁盘类型。

size

Integer

数据盘大小,容量单位为GB,输入大小范围为[10,32768]。

shareable

Boolean

是否为共享磁盘。true为共享盘,false为普通云硬盘。

说明:

该字段已废弃,请使用multiattach。

multiattach

Boolean

创建共享磁盘的信息。

  • true:创建的磁盘为共享盘。
  • false:创建的磁盘为普通云硬盘。
说明:

shareable当前为废弃字段,如果确实需要同时使用shareable字段和multiattach字段,此时,请确保两个字段的参数值相同。当不指定该字段时,系统默认创建普通云硬盘。

hw:passthrough

Boolean

数据卷是否使用SCSI锁。

如果使用,请将该字段值配置为“true”,否则,请勿填写该字段。

extendparam

字典数据结构

磁盘的产品信息。

详情请参见表11

表8 security_groups字段数据结构说明

参数

是否必选

参数类型

描述

id

String

待创建云服务器的安全组,会对创建云服务器中配置的网卡生效。需要指定已有安全组的ID,UUID格式。

表9 eip字段数据结构说明

参数

是否必选

参数类型

描述

iptype

String

弹性IP地址类型。

类型枚举值:
  • 5_bgp:全动态BGP
  • 5_sbgp:静态BGP
  • 5_telcom:中国电信
  • 5_union:中国联通

详情请参见《虚拟私有云接口参考》“申请弹性公网IP”章节的“publicip”字段说明。

bandwidth

字典数据结构

弹性IP地址带宽参数。

详情请参见表10

表10 bandwidth字段数据结构说明

参数

是否必选

参数类型

描述

size

Integer

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

说明:

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

sharetype

String

带宽的共享类型。

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

chargemode

String

带宽的计费类型。

  • 未传该字段,表示按带宽计费。
  • 字段值为空,表示按带宽计费。
  • 字段值为“traffic”,表示按流量计费。
  • 字段为其它值,会导致创建云服务器失败。
    说明:

    如果share_type是WHOLE并且id有值,该参数会忽略。

id

String

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

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

说明:

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

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

参数

是否必选

参数类型

描述

resourceSpecCode

String

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

说明:

废弃字段。

resourceType

String

磁盘产品资源类型。

说明:

废弃字段。

snapshotId

String

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

使用场景:

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

用途:

使用整机镜像创建云服务器时,系统会自动恢复整机镜像中自带数据盘(如果有)的数据,但是磁盘类型将被恢复为默认属性:普通I/O、VBD、非共享盘。此时,您可以通过snapshotID,修改指定原数据盘恢复后的磁盘类型。

说明:
  • 建议对每块原数据盘都指定snapshotID,否则,未指定的原数据盘将按默认属性进行创建。
  • 如需修改磁盘大小,修改后的磁盘大小需大于等于原数据盘大小。否则,会影响原数据盘的数据恢复。

实现原理:

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

快照ID的获取方法:

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

使用方法:

请参见示例2

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

参数

是否必选

参数类型

描述

chargingMode

Integer

计费模式:

  • 0:按需计费。

regionID

String

云服务器所在区域ID。

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

support_auto_recovery

String

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

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

enterprise_project_id

String

企业项目ID。

说明:

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

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

marketType

String

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

说明:

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

spotPrice

String

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

说明:
  • 仅chargingMod=0且marketType=spot时,该参数设置后生效。
  • 当chargingMod=0且marketType=spot时,如果不传递spotPrice,默认使用按需购买的价格作为竞价。
表13 os:scheduler_hints字段数据结构说明

参数

是否必选

参数类型

描述

group

String

云服务器组ID,UUID格式。

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

表14 server_tags字段数据结构说明

参数

是否必选

参数类型

描述

key

String

键。

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

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

value

String

值。

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

响应消息

请参考响应

示例1

公有云平台提供了丰富的云服务器类型,不同类型、不同规格的云服务器“规格名称/ID”不同。使用接口方式创建不同规格的云服务器时,请求体是相同的,您只需根据请求消息中的参数说明,更换如下请求样例中的参数值即可。

假设需要创建规格ID为“s3.xlarge.2”的云服务器,其中,镜像ID为“1189efbf-d48b-46ad-a823-94b942e2a000”、磁盘类型为“SATA”、VPC ID为“0dae26c9-9a70-4392-93f3-87d53115d171”,请求样例参考如下:
{
    "server": {
        "availability_zone": "cn-north-1a", 
        "name": "newserver", 
        "imageRef": "1189efbf-d48b-46ad-a823-94b942e2a000", 
        "root_volume": {
            "volumetype": "SATA"
        }, 
        "data_volumes": [
            {
                "volumetype": "SATA", 
                "size": 100,
                "extendparam":{
                    "snapshotId": "ef020653-9742-4d24-8672-10af42c9702b"
                }
            }, 
            {
                "volumetype": "SSD", 
                "size": 100,
                "multiattach": true,
                "hw:passthrough": "true"
            }
        ], 
        "flavorRef": "s3.xlarge.2", 
        "vpcid": "0dae26c9-9a70-4392-93f3-87d53115d171", 
        "security_groups": [
            {
                "id": "507ca48f-814c-4293-8706-300564d54620"
            }
        ], 
        "nics": [
            {
                "subnet_id": "157ee789-03ea-45b1-a698-76c92660dd83"
            }
        ], 
        "publicip": {
            "id": "publicip_123", 
            "eip": {
                "iptype": "5_bgp",
                "bandwidth": {
                    "size": 10, 
                    "sharetype": "PER"
                }
            }
        }, 
        "key_name": "sshkey-123", 
        "adminPass": "", 
        "count": 1, 
        "extendparam": { 
            "regionID": "region_001",
            "enterprise_project_id": "f8e0ecc8-3825-4ee8-9596-fb4258ffdcbb"
        },
        "server_tags": [
            {
                "key": "key1",
                "value": "value1"
            }
        ]
    }
}

示例2

假设使用整机镜像创建云服务器,该整机镜像自带两个数据盘。要求新创建的云服务器磁盘属性如下:

  • 对于恢复的两块数据盘,一块按磁盘默认属性恢复,另一块的磁盘属性更改为:SATA,100GB。
  • 除了恢复的两块数据盘,请在创建弹性云服务器时新挂载一个数据盘,该磁盘属性为:SSD,50GB。

请求样例可参考如下:

{
    "server": {
        "availability_zone": "az1.dc1", 
        "name": "wholeImageServer", 
        "imageRef": "ff49b1f1-3e3e-4913-89c6-a026041661e8", 
        "root_volume": {
            "volumetype": "SATA"
        }, 
        "data_volumes": [
            {
                "volumetype": "SATA", 
                "size": 100,
                "extendparam":{
                    "snapshotId": "ef020653-9742-4d24-8672-10af42c9702b"
                }
            }, 
            {
                "volumetype": "SSD", 
                "size": 50
            }
        ], 
        "flavorRef": "s2.large.2", 
        "vpcid": "0dae26c9-9a70-4392-93f3-87d53115d171", 
        "security_groups": [
            {
                "id": "507ca48f-814c-4293-8706-300564d54620"
            }
        ], 
        "nics": [
            {
                "subnet_id": "157ee789-03ea-45b1-a698-76c92660dd83",
            }
        ],
        "key_name": "sshkey-123"
    }
}

返回值

请参考通用请求返回值

错误码

请参考错误码说明

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

在文档使用中是否遇到以下问题







请至少选择或填写一项反馈信息

字符长度不能超过100

反馈内容不能为空!

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

跳转到云社区