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

创建云服务器(按需)

分享
更新时间: 2019/05/30 11:36

功能介绍

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

URI

POST /v1/{project_id}/cloudservers

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

参数

是否必选

描述

project_id

项目ID。

项目ID获取步骤如下:
  1. 注册并登录管理控制台。
  2. 单击用户名,在下拉列表中单击“我的凭证”。

    在“我的凭证”页面的项目列表中查看项目ID。

  1. 注册并登录管理控制台。
  2. 单击用户名,在下拉列表中单击“我的凭证”。

    在“我的凭证”页面的项目列表中查看项目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。

示例(base64编码前):

  • 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密钥方式登录云服务器,请指定已创建密钥的名称。

密钥可以通过秘钥创建接口(请参加 创建和导入SSH密钥)进行创建,或使用SSH密钥查询接口(请参见查询SSH密钥列表 )查询已有的密钥。

vpcid

String

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

nics

列表数据结构

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

约束:

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

publicip

字典数据结构

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

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

详情请参见表1

count

Integer

创建云服务器数量。

约束:

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

isAutoRename

Boolean

当批量创建弹性云服务器时,云服务器名称是否允许重名,当count大于1的时候该参数生效。默认为True。

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

root_volume

字典数据结构

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

详情请参见表5

data_volumes

列表数据结构

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

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

详情请参见表6

security_groups

列表数据结构

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

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

详情请参见表2

availability_zone

String

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

请参考地区和终端节点获取。也可参考接口 查询可用区列表 获取。

extendparam

字典数据结构

创建云服务器附加信息。

详情请参见表8

metadata

字典数据结构

创建云服务器元数据。

os:scheduler_hints

字典数据结构

云服务器调度信息。

详情请参见表11

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

列表数据结构

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

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

description

String

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

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

参数

是否必选

参数类型

描述

subnet_id

String

待创建云服务器所在的子网信息。

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

ip_address

String

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

约束:

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

ipv6_enable

Boolean

是否支持ipv6。

取值为true时,标识此网卡支持ipv6。

ipv6_bandwidth

字典数据结构

绑定的共享带宽ID。

表5 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属性)。
    说明:

    镜像系统盘的最小值(镜像的min_disk属性)可在控制台中点击镜像详情查看。或通过调用“查询镜像详情(OpenStack原生)”API获取,详细操作请参考《镜像服务API参考》中“查询镜像详情(OpenStack原生)”章节。

extendparam

字典数据结构

磁盘的产品信息。

详情请参见创建磁盘的extendparam字段数据结构说明

表6 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”,否则,请勿填写该字段。

说明:

此参数为boolean类型,若传入非boolean类型字符,程序将按照【false】方式处理。

extendparam

字典数据结构

磁盘的产品信息。

详情请参见表7

data_image_id

String

数据镜像的ID,UUID格式。

响应消息

请参考响应(任务类)

示例

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

  • 假设需要创建规格ID为“s3.xlarge.2”的云服务器,其中,镜像ID为“1189efbf-d48b-46ad-a823-94b942e2a000”、磁盘类型为“SATA”、VPC ID为“0dae26c9-9a70-4392-93f3-87d53115d171”,请求示例参考如下:
    {
        "server": {
            "availability_zone":"az1-dc1", //可用区名称
            "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", 
            "count": 1, 
            "extendparam": { 
                    "enterprise_project_id": "f8e0ecc8-3825-4ee8-9596-fb4258ffdcbb"
            },
            "server_tags": [
                {
                    "key": "key1",
                    "value": "value1"
                }
            ],
            "metadata": {
                   "op_svc_userid": "8ea65f4099ba412883e2a0da72b96873",
                   "agency_name": "test"
            }
        }
    }
  • 假设使用整机镜像创建云服务器,该整机镜像自带两个数据盘。要求新创建的云服务器磁盘属性如下:
    • 对于恢复的两块数据盘,一块按磁盘默认属性恢复,另一块的磁盘属性更改为: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"
        }
    }

返回值

请参考通用请求返回值

错误码

请参考错误码说明

如果您喜欢这篇文档,您还可以:

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

提交成功!

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

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

*必选

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

字符长度不能超过200

提交反馈 取消

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

跳转到云社区