华为云——ECS弹性云服务器接口文档相关知识点提炼总结与解读
作者专注于Java、架构、Linux、小程序、爬虫、自动化等技术。 工作期间含泪整理出一些资料,微信搜索【程序员高手之路】,回复 【java】【黑客】【爬虫】【小程序】【面试】等关键字免费获取资料。技术交流、项目合作可私聊!
目录
前言
作者浏览过华为云、腾讯云、百度云、阿里云等云技术公司的官网,发现都有类似的产品与知识,比如磁盘、快照、网络、安全组等等,这些概念都是大同小异的,懂得了其中一个云产品,其它产品自然就简单了。而最近工作中使用到了华为云提供的ECS接口文档,所以就从中提炼出一些常用知识,并添加了其它参考资料,作为后面工作的参考。
如需查看详细内容,还请点击: ECS接口文档
文档版本 30
发布日期 2019-10-30
一、使用前必读:
1.1 概述
弹性云服务器是由CPU、内存、镜像、云硬盘组成的一种可随时获取、弹性可扩展的计算服务器,同时它结合虚拟私有云、虚拟防火墙、数据多副本保存等能力,为您打造一个高效、可靠、安全的计算环境,确保您的服务持久稳定运行。
1.2 调用说明
1.3 终端节点(Endpoint)
1.4 约束限制
您能创建的ECS资源的数量与配额有关系,如果您想查看服务配额、扩大配额,具体请参见“调整资源配额”。
1.5 基本概念
- 账号:用户注册时的账号,账号对其所拥有的资源及云服务具有完全的访问权限,可以重置用户密码、分配用户权限等。
- 用户:由账号在IAM中创建的用户,是云服务的使用人员,具有身份凭证(密码和访问**)。
- 区域:指云资源所在的物理位置,同一区域内可用区间内网互通,不同区域间内网不互通。(注:上图中可以看到区域,终端节点里面包含区域)
- 可用区:一个可用区是一个或多个物理数据中心的集合,有独立的风火水电,AZ内逻辑上再将计算、网络、存储等资源划分成多个集群。一个Region中的多个AZ间通过高速光纤相连,以满足用户跨AZ构建高可用性系统的需求。(AZ就是Availible Zone,即可用区)
- 项目:区域默认对应一个项目,这个项目由系统预置,用来隔离物理区域间的资源(计算资源、存储资源和网络资源),以默认项目为单位进行授权,用户可以访问您账号中该区域的所有资源。如果您希望进行更加精细的权限控制,可以在区域默认的项目中创建子项目,并在子项目中购买资源,然后以子项目为单位进行授权,使得用户仅能访问特定子项目中资源,使得资源的权限控制更加精确。
1.6 API 版本选择建议
当前ECS服务对外开放两类风格的API:
1. ECS服务自定义规范的API(以下简称ECS API)
2. 顺从OpenStack社区标准原生规范的API 两种风格不同,功能相近。
OpenStack风格API主要用于满足您在开源生态工具方面的对接需求,在某些功能上ECS API在OpenStack社区的API基础上,做了功能增强。为了更好的使用OpenStack风格API,建议您提前了解OpenStack相关概念与知识。
版本号介绍
- 弹性云服务器所提供的接口分为ECS接口与OpenStack原生接口。推荐您使用ECS接口。
-
Openstack API可以使用v2和v2.1两个版本号,v2.1版本支持v2版本所有功能,且v2.1版本支持微版本。如果使用Openstack API推荐用户使用v2.1接口。若使用v2版本的openstack API接口,只需要把对应的API接口URI中的v2.1版本号改为v2版本号
即可。
微版本号介绍
- 微版本说明:标识API中小的改动。当接口URI使用v2.1版本的时候,用户可以指定微版本号使用相应API的新功能。使用查询API版本信息列表,可以查询当前支持的主版本和支持的最大与最小的微版本。
- 微版本的使用说明:用户想要使用微版本特性,需要在请求Openstack接口时,在请求头中加入微版本头:X-OpenStack-Nova-API-Version或者Openstack-API-Version,例如使用微版本2.26需要在https的请求头中加入:X-OpenStack-Nova-API-Version: 2.26或Openstack-API-Version: compute 2.26
- 说明 当用户使用v2.1接口不传入微版本头时,默认使用的微版本Openstack-API-Version: compute 2.1(X-OpenStack-Nova-API-Version: 2.1)。
微版本请求样例
- 使用v2接口,不加微版本号
– GET: https://{endpoint}/v2/74610f3a5ad941998e91f076297ecf27/servers/detail
– Headers:
Content-Type application/json
X-Auth-Token ${token}
响应消息体中没有"OS-EXT-SRV-ATTR:hostname"字段。
- 使用v2.1接口,加微版本号
– GET: https://{endpoint}/v2.1/74610f3a5ad941998e91f076297ecf27/servers/detail
– Headers:
Content-Type application/json
X-Auth-Token ${token}
X-OpenStack-Nova-API-Version 2.26 (多了版本号)
响应消息体中有"OS-EXT-SRV-ATTR:hostname"字段。
微版本响应样例
- 如果“version”和“min_version”这两个值为空字符串,说明此endpoint不支持微版本。其中,version:最大微版本号。 min_version:最小微版本号。
- 客户端应该指定最大和最小微版本范围内的微版本号去访问endpoint。客户端通过以下HTTP header指定微版本号: X-OpenStack-Nova-API-Version: 2.4,从微版本2.27开始,也可以用以下header指定微版本: Openstack-API-Version: compute 2.27
如下响应样例中支持的最大微版本为“2.14”,最小微版本为“2.1”:
{
"versions": [
{
"id": "v2.0",
"links": [
{
"href": "http://openstack.example.com/v2/",
"rel": "self"
}
],
"status": "SUPPORTED",
"version": "",
"min_version": "",
"updated": "2011-01-21T11:33:21Z"
},
{
"id": "v2.1",
"links": [
{
"href": "http://openstack.example.com/v2.1/",
"rel": "self"
}
],
"status": "CURRENT",
"version": "2.14",
"min_version": "2.1",
"updated": "2013-07-23T11:33:21Z"
}
]
}
1.7 分页查询
下一篇: 【学习笔记】nginx静态页面部署