功能介绍
创建一台按需弹性 云服务器 。
该接口在 云服务 器创建失败后不支持自动回滚。若需要自动回滚能力,可以调用POST /v1/{project_id}/cloudservers接口,具体使用请参见创建云服务器(按需)。
调试
您可以在API Explorer中调试该接口。
URI
POST /v2.1/{project_id}/servers
参数说明请参见表1。
参数说明
参数 |
是否必选 |
描述 |
---|---|---|
project_id |
是 |
项目ID。 获取方法请参见获取项目ID。 |
创建弹性云服务器接口别名:/v2/{project_id}/os-volumes_boot,该调用方式仅在OpenStack Client中使用,用户不推荐使用。
接口约束
- 该接口为原生接口,不支持整机 镜像 创建弹性云服务器功能。如需使用整机镜像创建弹性云服务器,请使用创建云服务器(按需)。
- 该接口为原生接口,不支持创建竞价实例。如需创建竞价实例请使用创建云服务器、创建云服务器(按需)。
- 该接口为原生接口,不支持创建包年/包月计费模式的实例。如需创建包年/包月计费模式的云服务器请使用创建云服务器。
- 使用该接口创建的云服务器,不支持在创建过程中绑定 弹性公网IP ,推荐使用创建云服务器(按需)创建云服务器并绑定弹性 公网IP 。
- 网络的三个参数(port、uuid和fixed_ip)中,port优先级最高;指定fixed_ip时必须指明uuid。
- 注入文件失败,将导致创建弹性云服务器失败。
- 使用镜像创建弹性云服务器时,存在下面约束:
- 不支持指定Host创建弹性云服务器。
- 租户如果对弹性云服务器中的卷进行了备份,则需要租户自行删除该卷所对应的快照等数据后,才能删除卷。
- 调整镜像创建的弹性云服务器规格时,不支持resource_type不同的flavor之间的规格调整。
- 云服务平台提供的原生接口/v2/{project_id}/servers 和 /v2.1/{project_id}/servers 是基于社区版OpenStack原生接口加固而成的,兼容社区版OpenStack原生接口。较之社区版的OpenStack原生接口,在使用指定镜像的方式创建弹性云服务器时存在如下差异:
- 社区OpenStack原生接口:默认使用服务器本地磁盘创建弹性云服务器。
- 云服务平台提供的原生接口:为了保障可靠性,使用共享存储作为系统盘创建弹性云服务器。
- 该差异的具体表现为,当您使用提供的原生接口创建云服务器时:
- 可以查询到云服务器挂载的系统盘信息。
- 云服务器的系统盘会占用 云硬盘 的配额。
- 不支持使用image过滤查询指定镜像方式创建的弹性云服务器。
- 指定卷创建弹性云服务器场景下,指定的卷与创建的弹性云服务器必须处于相同的AZ(availability_zone)。
- 用户创建弹性云服务器时在block_device_mapping_v2设置的device_name字段不会生效,系统会默认生成一个device_name。
- 请勿使用“provider:network_type”为“geneve”的网络来创建弹性云服务器。“provider:network_type”为“geneve”时,表示 裸金属服务器 使用的内部高速网络。
- 如果使用密钥方式远程登录云服务器,请使用key_name参数。如果使用密码方式远程登录云服务器,可使用adminPass参数;对于Linux云服务器,还可使用user_data进行注入,对于Windows云服务器,还可通过元数据admin_pass进行注入。
请求消息
请求参数如表2所示。
请求参数
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
server |
是 |
Object |
弹性云服务器信息,参见表3。 |
os:scheduler_hints |
否 |
Object |
弹性云服务器调度信息,参见表8。裸金属服务器场景不支持。 |
server参数信息
参数 |
是否必选 |
参数类型 |
---|---|---|
imageRef |
否 |
String |
flavorRef |
是 |
String |
name |
是 |
String |
metadata |
否 |
Map<String,String> |
adminPass |
否 |
String |
block_device_mapping_v2 |
否 |
Array of objects |
config_drive |
否 |
String |
security_groups |
否 |
Array of objects |
networks |
是 |
Array of objects |
key_name |
否 |
String |
user_data |
否 |
String |
availability_zone |
否 |
String |
return_reservation_id |
否 |
Boolean |
min_count |
否 |
Integer |
max_count |
否 |
Integer |
OS-DCF:diskConfig |
否 |
String |
description |
否 |
String |
auto_terminate_time |
否 |
String |
metadata字段数据结构说明
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
admin_pass |
否 |
String |
Windows弹性云服务器Administrator用户的密码。 说明: 创建密码方式鉴权的Windows弹性云服务器时为必选字段。 |
block_device_mapping_v2参数
参数 |
参数类型 |
是否必选 |
描述 |
---|---|---|---|
source_type |
String |
是 |
卷设备的源头类型,当前只支持volume、image、snapshot、blank类型。 当使用卷创建云服务器时,source_type设置为volume;当使用镜像创建云服务器时,source_type设置为image;当使用快照创建云服务器时,source_type设置为snapshot;当创建空数据卷时,source_type设置为blank。 说明: 当卷设备的源头类型为snapshot时,且boot_index为0,则该快照对应的云硬盘必须为系统盘。 |
destination_type |
String |
否 |
卷设备的目标类型,当前仅支持volume类型。
|
guest_format |
String |
否 |
local文件系统格式,例如:swap, ext4。 当前不支持该功能。 |
device_name |
String |
否 |
卷设备名称。 说明: 该字段已经废弃。 用户指定的device_name不会生效,系统会默认生成一个device_name。 |
delete_on_termination |
Boolean |
否 |
删除弹性云服务器时,是否删除卷,默认值false。
|
boot_index |
String |
否 |
启动标识,“0”代表启动盘,“-1”代表非启动盘。 不传该字段时默认取值为“-1”。 说明: 当卷设备的源头类型全为volume时,boot_index的值有一个为0。 |
uuid |
String |
否 |
|
volume_size |
Integer |
否 |
卷大小,整数,在source_type是image或blank,destination_type是volume的时候必选。 单位为GB。 |
volume_type |
String |
否 |
卷类型,在source_type是image,destination_type是volume时建议填写。 卷类型取值范围请参考 EVS 服务 磁盘类型介绍 。 |
security_groups参数
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
name |
否 |
String |
安全组名称或者uuid。 |
networks参数
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
port |
否 |
String |
网络port uuid。 没有指定网络uuid时必须指定。 |
uuid |
否 |
String |
网络uuid。 没有指定网络port时必须指定。 |
fixed_ip |
否 |
String |
指定的IP地址。网络的三个参数(port、uuid和fixed_ip)中,port优先级最高;指定fixed_ip时必须指明uuid。 |
os:scheduler_hints参数
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
group |
否 |
String |
反亲和性组信息。 UUID格式。 说明: 请确保云服务器组使用的是反亲和性anti-affinity策略,不推荐使用其他策略。 |
different_host |
否 |
Array of strings |
预留字段,当前不支持该功能。 |
same_host |
否 |
Array of strings |
预留字段,当前不支持该功能。 |
cidr |
否 |
String |
预留字段,当前不支持该功能。 |
build_near_host_ip |
否 |
String |
预留字段,当前不支持该功能。 |
tenancy |
否 |
String |
在 专属主机 或共享池中创建弹性云服务器。默认为在共享池创建。 值为: shared或dedicated。
创建与查询此值均有效。 |
dedicated_host_id |
否 |
String |
专属主机ID。 此属性仅在tenancy值为dedicated时有效。 不指定此属性,系统将自动分配租户可自动放置弹性云服务器的专属主机。 创建与查询此值均有效。 |
响应消息
响应参数如表9所示。
响应参数
参数 |
参数类型 |
描述 |
---|---|---|
server |
Object |
云服务器信息,详情请参见表10。 |
server字段数据结构说明
参数 |
参数类型 |
描述 |
---|---|---|
id |
String |
弹性云服务器ID,UUID格式。 |
links |
Array of objects |
弹性云服务器URI自描述信息,详情参见表11。 |
security_groups |
Array of objects |
弹性云服务器所在安全组,详情参见表12。 |
OS-DCF:diskConfig |
String |
diskConfig方式。
|
reservation_id |
String |
reservation_id:通过返回的reservation_id,可以过滤查询到本次创建的弹性云服务器。 说明: 批量创建弹性云服务器时,支持使用该字段。 |
adminPass |
String |
Windows弹性云服务器Administrator用户的密码。 |
links字段数据结构说明
参数 |
参数类型 |
描述 |
---|---|---|
rel |
String |
快捷链接标记名称。 |
href |
String |
对应快捷链接。 |
security_groups字段数据结构说明
参数 |
参数类型 |
描述 |
---|---|---|
name |
String |
安全组名称或者uuid。 |
请求示例
- 通过block_device_mapping_v2扩展属性使用镜像创建一台云服务器,采用密钥方式登录鉴权。POST https://{endpoint}/v2.1/9c53a566cb3443ab910cf0daebca90c4/servers { "server": { "flavorRef": "2", "name": "wjvm48", "metadata": { "name": "name_xx1", "id": "id_xxxx1" }, "block_device_mapping_v2": [{ "source_type": "image", "destination_type": "volume", "uuid": "b023fe17-11db-4efb-b800-78882a0e394b", "delete_on_termination": "False", "boot_index": "0", "volume_type": "SAS", "volume_size": "40" }], "security_groups": [{ "name": "name_xx5_sg" }], "networks": [{ "uuid": "fd40e6f8-942d-4b4e-a7ae-465287b02a2c", "port": "e730a11c-1a19-49cc-8797-cee2ad67af6f", "fixed_ip": "10.20.30.137" }], "key_name": "test", "user_data": "ICAgICAgDQoiQSBjbG91ZCBkb2VzIG5vdCBrbm93IHdoeSBpdCBtb3ZlcyBpbiBqdXN0IHN1
- 通过block_device_mapping_v2扩展属性使用快照创建一台云服务器,其中,boot_index为0,且该快照对应的云硬盘必须为系统盘。POST https://{endpoint}/v2.1/9c53a566cb3443ab910cf0daebca90c4/servers { "server":{ "name":"wjvm48", "availability_zone":"az1-dc1", "block_device_mapping_v2": [ { "source_type":"snapshot", "boot_index":"0", "uuid":"df51997d-ee35-4fb3-a372-e2ac933a6565", // snapshot id,创建snapshot接口会返回id "destination_type":"volume" } ], "flavorRef":"s3.xlarge.2", "max_count":1, "min_count":1, "networks": [ { "uuid":"79a68cef-0936-4e21-b1f4-b800ecb70246" } ] } }
- 通过block_device_mapping_v2使用卷创建一台弹性云服务器。POST https://{endpoint}/v2.1/9c53a566cb3443ab910cf0daebca90c4/servers { "server": { "flavorRef": "2", "name": "wjvm48", "metadata": { "name": "name_xx1", "id": "id_xxxx1" }, "block_device_mapping_v2": [{ "source_type": "volume", "destination_type": "volume", "uuid": "bd7e4f86-b004-4745-bea2-a55b1085f107", "delete_on_termination": "False", "boot_index": "0", "volume_type": "dsware", "volume_size": "40" }], "security_groups": [{ "name": "name_xx5_sg" }], "networks": [{ "uuid": "fd40e6f8-942d-4b4e-a7ae-465287b02a2c", "port": "e730a11c-1a19-49cc-8797-cee2ad67af6f", "fixed_ip": "10.20.30.137" }], "key_name": "test", "user_data": "ICAgICAgDQoiQSBjbG91ZCBkb2VzIG5vdCBrbm93IHdoeSBpdCBtb3ZlcyBpbiBqdXN0IHN1
- 使用imageRef创建一台弹性云服务器。POST https://{endpoint}/v2.1/9c53a566cb3443ab910cf0daebca90c4/servers { "server": { "flavorRef": "2", "name": "wjvm48", "metadata": { "name": "name_xx1", "id": "id_xxxx1" }, "adminPass": "name_xx1", "imageRef": "6b344c54-d606-4e1a-a99e-a7d0250c3d14", "security_groups": [{ "name": "name_xx5_sg" }], "networks": [{ "uuid": "fd40e6f8-942d-4b4e-a7ae-465287b02a2c", "port": "e730a11c-1a19-49cc-8797-cee2ad67af6f", "fixed_ip": "10.20.30.137" }], "key_name": "test", "user_data": "ICAgICAgDQoiQSBjbG91ZCBkb2VzIG5vdCBrbm93IHdoeSBpdCBtb3ZlcyBpbiBqdXN0IHN
- 批量创建弹性云服务器,最小数量为2,最大数量为3。POST https://{endpoint}/v2.1/9c53a566cb3443ab910cf0daebca90c4/servers { "server": { "availability_zone":"az1.dc1", "name": "test", "imageRef": "10ff4f01-35b6-4209-8397-359cb4475fa0", "flavorRef": "s3.medium", "return_reservation_id": "true", "networks": [ { "uuid": "51bead38-d1a3-4d08-be20-0970c24b7cab" } ], "min_count": "2", "max_count": "3" } }
响应示例
创建弹性云服务器:
{ "server": { "security_groups": [ { "name": "name_xx5_sg" } ], "OS-DCF:diskConfig": " MANUAL", "id": "567c1557-0eca-422c-bfce-149d6b8f1bb8", "links": [ { "href": "http://xxx/v2/dc4059e8e7994f2498b514ca04cdaf44/servers/567c1557-0eca-422c-bfce-149d6b8f1bb8", "rel": "self" }, { "href": "http://xxx/dc4059e8e7994f2498b514ca04cdaf44/servers/567c1557-0eca-422c-bfce-149d6b8f1bb8", "rel": "bookmark" } ], "adminPass": "name_xx1" } }
批量创建弹性云服务器:
{ "reservation_id": "r-3fhpjulh" }
返回值
请参考通用请求返回值。