请求参数
5 OpenStack Nova API
5.1 查询 API 版本信息
5.1.2 查询指定 API 版本信息
"id": "v2.0",
"updated": "2001-09-21T12:33:21Z", "status": "SUPPORTED"
}]}
返回值
请参考通用请求返回值。
5.1.2 查询指定 API 版本信息
功能介绍
返回指定版本的信息。
为了支持功能不断扩展,Nova API支持版本号区分。Nova中有两种形式的版本号:
● "主版本号": 具有独立的url。
● "微版本号": 通过Http请求头X-OpenStack-Nova-API-Version来使用,从 2.27 版 本开始支持新的微版本头:OpenStack-API-Version。
说明
如果使用OpenStack-API-Version的请求头,version对应的value取值格式为 compute 微 版本号。
例如:key为OpenStack-API-Version的时候value需要填compute 2.27。
URI
GET /{api_version}
参数说明请参见表5-4。
表5-4 参数说明
参数 是否必选 描述
api_version 是 API版本号。例如: v2
请求消息
无
响应消息
响应参数如表2所示。
表5-5 响应参数
参数 参数类型 描述
versions Object 指定版本信息,详情请参见表3。
表5-6 versions 字段数据结构说明
参数 参数类型 描述
id string 所讨论的版本的通用名称。仅仅是信息性的,
它没有真正的语义。
links Object 链接到资源的问题。有关更多信息,请参见 OpenStack Documentation。
详情请参见表4。
media-types Object 媒体类型。详情请参见表5。
min_version string ● 如果API的这个版本支持微版本,则支持最 小的微版本。
● 如果不支持微版本,这将是空字符串。
status string API版本的状态:
● CURRENT这是使用的API的首选版本;
● SUPPORTED:这是一个较老的,但仍然支 持的API版本;
● DEPRECATED:一个被废弃的API版本,该 版本将被删除
updated string 一个有特定值的字符串。API版本为2.0时,值 为2011-01-21T11:33:21Z ,API版本是2.1时,
值为2013-07-23T11:33:21Z。
version string ● 如果API的这个版本支持微版本,则支持最 大的微版本。
● 如果不支持微版本,这将是空字符串。
表5-7 links 字段数据结构说明
参数 参数类型 描述
href string 相应资源的链接。
参数 参数类型 描述
rel string ● self:自助链接包含版本链接的资源。立即 链接后使用这些链接。
● bookmark:书签链接提供了一个永久资源 的永久链接,该链接适合于长期存储。
● alternate:备用链接可以包含资源的替换表 示形式。例如,OpenStack计算映像可能在 OpenStack映像服务中有一个替代表示。
表5-8 media-types 字段数据结构说明
参数 参数类型 描述
base string 基础类型。
type string 媒体类型。
请求示例
GET https://{endpoint}/v2
响应示例
{ "version": { "min_version": "", "media-types": [{
"type": "application/vnd.openstack.compute+json;version=2", "base": "application/json"
}], "links": [{
"rel": "self",
"href": "https://ecs.service.domain.com:443/v2/"
}, {
"rel": "describedby",
"href": "http://docs.openstack.org/", "type": "text/html"
}], "id": "v2.0",
"updated": "1999-02-20T11:33:21Z", "version": "",
"status": "SUPPORTED"
}}
返回值
请参考通用请求返回值。
5.2 生命周期管理
5.2.1 创建云服务器
功能介绍
创建一台按需弹性云服务器。
弹性云服务器创建完成后,如需开启自动恢复功能,可以调用配置云服务器自动恢复 的接口,具体使用请参见管理云服务器自动恢复动作。
该接口在云服务器创建失败后不支持自动回滚。若需要自动回滚能力,可以调用 POST /v1/{project_id}/cloudservers接口,具体使用请参见创建云服务器(按需)。
调试
您可以在API Explorer中调试该接口。
URI
POST /v2.1/{project_id}/servers 参数说明请参见表5-9。
表5-9 参数说明
参数 是否必选 描述
project_id 是 项目ID。
获取方法请参见获取项目ID。
说明
创建弹性云服务器接口别名:/v2/{project_id}/os-volumes_boot,该调用方式仅在OpenStack Client中使用,用户不推荐使用。
接口约束
1. 该接口为原生接口,不支持整机镜像创建弹性云服务器功能。如需使用整机镜像 创建弹性云服务器,请使用创建云服务器(按需)。
2. 该接口为原生接口,不支持创建竞价实例。如需创建竞价实例请使用创建云服务 器、创建云服务器(按需)。
3. 该接口为原生接口,不支持创建包周期计费模式的实例。如需创建包周期计费模 式的云服务器请使用创建云服务器。
4. 使用该接口创建的云服务器,不支持在创建过程中绑定弹性公网IP,推荐使用创 建云服务器(按需)创建云服务器并绑定弹性公网IP。
5. 网络的三个参数(port、uuid和fixed_ip)中,port优先级最高;指定fixed_ip时必 须指明uuid。
6. 注入文件失败,将导致创建弹性云服务器失败。
7. 使用镜像创建弹性云服务器时,存在下面约束:
a. 不支持指定Host创建弹性云服务器。
b. 租户如果对弹性云服务器中的卷进行了备份,则需要租户自行删除该卷所对 应的快照等数据后,才能删除卷。
c. 调整镜像创建的弹性云服务器规格时,不支持resource_type不同的flavor之 间的规格调整。
8. 公有云平台提供的原生接口/v2/{project_id}/servers 和 /v2.1/{project_id}/servers 是基于社区版OpenStack原生接口加固而成的,兼容社区版OpenStack原生接 口。
较之社区版的OpenStack原生接口,在使用指定镜像的方式创建弹性云服务器时 存在如下差异:
– 社区OpenStack原生接口:默认使用服务器本地磁盘创建弹性云服务器。
– 公有云平台提供的原生接口:为了保障可靠性,使用共享存储作为系统盘创 建弹性云服务器。
该差异的具体表现为,当您使用提供的原生接口创建云服务器时:
a. 可以查询到云服务器挂载的系统盘信息。
b. 云服务器的系统盘会占用云硬盘的配额。
c. 不支持使用image过滤查询指定镜像方式创建的弹性云服务器。
9. 指定卷创建弹性云服务器场景下,指定的卷与创建的弹性云服务器必须处于相同 的AZ(availability_zone)。
10. 用户创建弹性云服务器时在block_device_mapping_v2设置的device_name字段不 会生效,系统会默认生成一个device_name。
11. 请勿使用“provider:network_type”为“geneve”的网络来创建弹性云服务器。
说明
“provider:network_type”为“geneve”时,表示裸金属服务器使用的内部高速网络。
12. 如果使用密钥方式远程登录云服务器,请使用key_name参数。如果使用密码方式 远程登录云服务器,可使用adminPass参数;对于Linux云服务器,还可使用 user_data进行注入,对于Windows云服务器,还可通过元数据admin_pass进行 注入。
请求消息
请求参数如表5-10所示。
表5-10 请求参数
参数 是否必选 参数类型 描述
server 是 Object 弹性云服务器信息,参见表5-11。
os:scheduler_
hints 否 Object 弹性云服务器调度信息,参见表5-16。
裸金属服务器场景不支持。
表5-11 server 参数信息
参数 是否必选 参数类型 描述
imageRef 否 String 镜像ID或者镜像资源的URL。
●
flavorRef 是 String 规格ID或URL。
规格ID示例:c3.2xlarge
name 是 String 弹性云服务器名称,长度大于0小于256 字节。
说明云服务器内部主机名(hostname)命名规则 遵循 RFC 952和RFC 1123命名规范,建议 使用a-zA-z或0-9以及中划线"-"组成的名称 命名,"_"将在云服务器内部默认转化为
"-"。
metadata 否 Map<String,
String> 弹性云服务器元数据。参见表5-12。
● key的长度大于0小于256字节
● value的长度大于等于0小于256字节 adminPass 否 String 如果需要使用密码方式登录云服务器,
可使用adminPass字段指定云服务器管 理员帐户初始登录密码。其中,Linux 管理员帐户为root,Windows管理员帐 户为Administrator。
block_device_
mapping_v2 否 Array of
objects 扩展属性,指定弹性云服务器存储设备 的v2接口。是存储资源的新版本接口,
指定卷场景不能批创弹性云服务器。参 见表5-13。裸金属服务器场景不支持。
参数 是否必选 参数类型 描述
config_drive 否 String 扩展属性,开启后在弹性云服务器创建 时挂载config_drive向弹性云服务器内
networks 是 Array of
objects 扩展属性,指定弹性云服务器的网卡信 息。有多个租户网络时必须指定。参照 表5-15。
key_name 否 String 扩展属性,指定keypair的名称。
user_data 否 String 创建云服务器过程中待注入实例自定义 数据。支持注入文本、文本文件。
echo user_test >> /home/user.txt
● Windows服务器:
rem cmd
echo 111 > c:\aaa.txt
base64编码后:
参数 是否必选 参数类型 描述 return_reserva
tion_id 否 Boolean 扩展属性,是否支持返回批量创建弹性 云服务器的reservation_id。通过返回的
min_count 否 Integer 扩展属性,表示创建弹性云服务器最小 数量。
默认值为1。
说明
指定镜像创建弹性云服务器时,支持使用该 字段。
max_count 否 Integer 表示创建弹性云服务器最大数量。
默认值与min_count的取值一致。
否 String diskConfig的方式,取值为AUTO、
MANUAL。
● MANUAL,镜像空间不会扩展。
● AUTO,系统盘镜像空间会自动扩展 为与flavor大小一致。
当前不支持该功能。
description 否 String 扩展属性,表示弹性云服务器描述信 息,默认为空字符串。
微版本2.19及以上版本支持。
● 长度最多允许85个字符。
● 不能包含“<” 和 “>”等特殊符 号。
参数 是否必选 参数类型 描述 auto_terminat
e_time 否 String 该字段尚不支持,功能即将上线,敬请 期待。
自动释放时间。
按照ISO8601标准表示,并使用UTC +0
时间,格式为yyyy-MM-ddTHH:mm:ssZ。
如果秒(ss)取值不是 00,则自动取为 当前分钟(mm)开始时。
最短释放时间为当前时间半小时之后。
最长释放时间不能超过当前时间三年。
示例:2020-09-25T12:05:00Z
表5-12 metadata 字段数据结构说明
参数 是否必选 参数类型 描述
admin_pass 否 String Windows弹性云服务器Administrator 用户的密码。
说明创建密码方式鉴权的Windows弹性云服务 器时为必选字段。
表5-13 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类型。
● volume:卷。
● local:本地文件,当前不支持该类 型。
guest_format String 否 local文件系统格式,例如:swap, ext4。
当前不支持该功能。
device_name String 否 卷设备名称。
说明
boot_index String 否 启动标识,“0”代表启动盘,
“-1“代表非启动盘。
说明当卷设备的源头类型全为volume时,
boot_index的值有一个为0。
uuid String 否 ● 当source_type值是volume时,
uuid为卷的uuid;
● 当source_type值是snapshot时,
uuid为快照的uuid;
● 当source_type值是image时,uuid 为镜像的uuid;
volume_size Integer 否 卷大小,整数,在source_type是 image或blank,destination_type是 volume的时候必选。
单位为GB。
volume_type String 否 卷类型,在source_type是image,
destination_type是volume时建议填 写。
卷类型取值范围请参考 EVS 服务 磁盘 类型介绍 。
表5-14 security_groups 参数
参数 是否必选 参数类
型
描述
name 否 String 安全组名称或者uuid。
表5-15 networks 参数
表5-15 networks 参数