云服务器内容精选

  • 微版本响应样例 如果“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" } ] }
  • API风格说明 当前E CS 服务对外开放两类风格的API: ECS服务自定义规范的API(以下简称ECS API) 顺从OpenStack社区标准原生规范的API 两种风格不同,功能相近。OpenStack风格API主要用于满足您在开源生态工具方面的对接需求,在某些功能上ECS API在OpenStack社区的API基础上,做了功能增强。为了更好的使用OpenStack风格API,建议您提前了解OpenStack相关概念与知识。
  • 微版本号介绍 微版本说明:标识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)。
  • 版本号介绍 弹性云服务器所提供的接口分为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接口查询"OS-EXT-SRV-ATTR:hostname"字段。 使用v2接口,不加微版本号 GET: https://{Endpoint}/v2/74610f3a5ad941998e91f076297ecf27/servers/detail 其中{Endpoint}为 IAM 的终端节点,请参考终端节点获取。 Headers: Content-Type application/json X-Auth-Token ${token} 响应消息体: { "servers": [ { "tenant_id": "74610f3a5ad941998e91f076297ecf27", "addresses": { "05d4fb93-84e5-4964-853b-32992ffef627": [ { "OS-EXT-IPS-MAC:mac_addr": "fa:16:3e:20:17:95", "OS-EXT-IPS:type": "fixed", "addr": "192.168.0.228", "version": 4 }, { "OS-EXT-IPS-MAC:mac_addr": "fa:16:3e:20:17:95", "OS-EXT-IPS:type": "floating", "addr": "192.168.51.61", "version": 4 } ] }, "metadata": {}, "OS-EXT-STS:task_state": null, "OS-DCF:diskConfig": "MANUAL", "OS-EXT-AZ:availability_zone":"az1-dc1", "links": [ { "rel": "self", "href": "https://None/v2.1/74610f3a5ad941998e91f076297ecf27/servers/89c312bb-285a-4026-a237-d441908c2f9e" }, { "rel": "bookmark", "href": "https://None/74610f3a5ad941998e91f076297ecf27/servers/89c312bb-285a-4026-a237-d441908c2f9e" } ], "OS-EXT-STS:power_state": 1, "id": "89c312bb-285a-4026-a237-d441908c2f9e", "os-extended-volumes:volumes_attached": [ { "id": "c70c4b8e-33bd-4d1f-ab16-14a5a38cdeaf" } ], "OS-EXT-SRV-ATTR:host": "pod05.test.01", "image": { "links": [ { "rel": "bookmark", "href": "https://None/74610f3a5ad941998e91f076297ecf27/images/1189efbf-d48b-46ad-a823-94b942e2a000" } ], "id": "1189efbf-d48b-46ad-a823-94b942e2a000" }, "OS-SRV-USG:terminated_at": null, "accessIPv4": "", "accessIPv6": "", "created": "2018-05-11T03:21:56Z", "hostId": "fc7a8ff86bac050f0d9454b1b078dcc97060e819acbf06f04c3e338f", "OS-EXT-SRV-ATTR:hypervisor_hostname": "nova012@7", "key_name": "id_rsa", "flavor": { "links": [ { "rel": "bookmark", "href": "https://None/74610f3a5ad941998e91f076297ecf27/flavors/s3.small.1" } ], "id": "s3.small.1" }, "security_groups": [ { "name": "default" } ], "config_drive": "", "OS-EXT-STS:vm_state": "active", "OS-EXT-SRV-ATTR:instance_name": "instance-0016c624", "user_id": "f79791beca3c48159ac2553fff22e166", "name": "zt-test", "progress": 0, "OS-SRV-USG:launched_at": "2018-05-11T03:22:16.701600", "updated": "2018-05-11T03:22:51Z", "status": "ACTIVE" } ] } 结论:响应消息体中没有"OS-EXT-SRV-ATTR:hostname"字段。 使用v2.1接口,加微版本号 GET: https://{Endpoint}/v2.1/74610f3a5ad941998e91f076297ecf27/servers/detail 其中{Endpoint}为IAM的终端节点,请参考终端节点获取。 Headers: Content-Type application/json X-Auth-Token ${token} X-OpenStack-Nova-API-Version 2.26 响应消息体: { "servers": [ { "tenant_id": "74610f3a5ad941998e91f076297ecf27", "addresses": { "05d4fb93-84e5-4964-853b-32992ffef627": [ { "OS-EXT-IPS-MAC:mac_addr": "fa:16:3e:20:17:95", "OS-EXT-IPS:type": "fixed", "addr": "192.168.0.228", "version": 4 }, { "OS-EXT-IPS-MAC:mac_addr": "fa:16:3e:20:17:95", "OS-EXT-IPS:type": "floating", "addr": "192.168.51.61", "version": 4 } ] }, "metadata": {}, "OS-EXT-STS:task_state": null, "description": "zt-test", "OS-EXT-SRV-ATTR:hostname": "zt-test", "OS-DCF:diskConfig": "MANUAL", "OS-EXT-AZ:availability_zone":"az-test-01", "links": [ { "rel": "self", "href": "https://None/v2.1/74610f3a5ad941998e91f076297ecf27/servers/89c312bb-285a-4026-a237-d441908c2f9e" }, { "rel": "bookmark", "href": "https://None/74610f3a5ad941998e91f076297ecf27/servers/89c312bb-285a-4026-a237-d441908c2f9e" } ], "OS-EXT-STS:power_state": 1, "id": "89c312bb-285a-4026-a237-d441908c2f9e", "os-extended-volumes:volumes_attached": [ { "delete_on_termination": true, "id": "c70c4b8e-33bd-4d1f-ab16-14a5a38cdeaf" } ], "locked": false, "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:host":"pod05.test.01" , "OS-EXT-SRV-ATTR:ramdisk_id": "", "image": { "links": [ { "rel": "bookmark", "href": "https://None/74610f3a5ad941998e91f076297ecf27/images/1189efbf-d48b-46ad-a823-94b942e2a000" } ], "id": "1189efbf-d48b-46ad-a823-94b942e2a000" }, "accessIPv4": "", "OS-SRV-USG:terminated_at": null, "accessIPv6": "", "OS-EXT-SRV-ATTR:launch_index": 0, "created": "2018-05-11T03:21:56Z", "OS-EXT-SRV-ATTR:user_data": null, "hostId": "fc7a8ff86bac050f0d9454b1b078dcc97060e819acbf06f04c3e338f", "OS-EXT-SRV-ATTR:reservation_id": "r-pbqmaxer", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "host_status": "UP", "OS-EXT-SRV-ATTR:hypervisor_hostname": "nova012@7", "tags": [], "key_name": "id_rsa", "flavor": { "links": [ { "rel": "bookmark", "href": "https://None/74610f3a5ad941998e91f076297ecf27/flavors/s3.small.1" } ], "id": "s3.small.1" }, "security_groups": [ { "name": "default" } ], "config_drive": "", "OS-EXT-STS:vm_state": "active", "OS-EXT-SRV-ATTR:instance_name": "instance-0016c624", "user_id": "f79791beca3c48159ac2553fff22e166", "name": "zt-test", "progress": 0, "OS-SRV-USG:launched_at": "2018-05-11T03:22:16.701600", "updated": "2018-05-11T03:22:51Z", "status": "ACTIVE" } ] } 结论:响应消息体中有"OS-EXT-SRV-ATTR:hostname"字段。
  • 响应示例 { "limits": { "rate": [], "absolute": { "maxServerMeta": 128, "maxPersonality": 5, "totalServerGroupsUsed": 0, "maxImageMeta": 128, "maxPersonalitySize": 10240, "maxTotal RAM Size": 25165824, "maxTotalKeypairs": -1, "maxSecurityGroupRules": 20, "maxServerGroups": -1, "totalCoresUsed": 0, "totalRAMUsed": 0, "maxSecurityGroups": 10, "totalFloatingIpsUsed": 0, "totalInstancesUsed": 0, "totalSecurityGroupsUsed": 0, "maxTotalFloatingIps": 10, "maxTotalInstances": 2048, "maxTotalCores": 20480, "maxServerGroupMembers": -1 } } }
  • 响应消息 响应参数如表2所示。 表2 响应参数 参数 参数类型 描述 limits Object 租户限制,详情请参见表3。 表3 limits参数信息 参数 参数类型 描述 rate List 值为空列表 absolute Object 租户配额限制,详情请参见表4。 表4 absolute参数信息 参数 参数类型 描述 maxServerMeta String 云服务器元数据数量限制。 值为“-1”时,表示无数量限制。 maxPersonality String 注入文件数量限制。 值为“-1”时,表示无数量限制。 totalServerGroupsUsed String 已使用的云服务器组数量。 maxImageMeta String 镜像元数据数量限制。 值为“-1”时,表示无数量限制。 maxPersonalitySize String 注入文件大小限制。 值为“-1”时,表示无大小限制。 maxTotalRAMSize String 总内存大小限制。 值为“-1”时,表示无大小限制。 maxTotalKeypairs String keypair数量限制。 值为“-1”时,表示无数量限制。 maxSecurityGroupRules String 安全组规则数量限制。 值为“-1”时,表示无数量限制。 微版本2.35及以上版本不支持。 maxServerGroups String 云服务器组数量限制。 值为“-1”时,表示无数量限制。 totalCoresUsed String 已使用的核数。 totalRAMUsed String 已使用的内存大小。 maxSecurityGroups String 安全组数量限制。 值为“-1”时,表示无数量限制。 totalFloatingIpsUsed String 已使用的浮动IP数量。 totalInstancesUsed String 已使用的云服务器数量。 totalSecurityGroupsUsed String 已使用的安全组数量。 maxTotalFloatingIps String 浮动IP数量限制。 值为“-1”时,表示无数量限制。 maxTotalInstances String 云服务器数量限制。 值为“-1”时,表示无数量限制。 maxTotalCores String 总核数限制。 值为“-1”时,表示无数量限制。 maxServerGroupMembers String 云服务器组成员数量限制。 值为“-1”时,表示无数量限制。
  • URI DELETE /v2.1/{project_id}/servers/{server_id}/tags/{tag} 参数说明请参见表1。 表1 参数说明 参数 是否必选 描述 project_id 是 项目ID。 获取方法请参见获取项目ID。 server_id 是 云服务器ID。 tag 是 待删除标签的key。如果未指定具体的标签key,将删除该弹性云服务器的所有标签。 说明: 系统近期对标签功能进行了升级。如果之前添加的Tag为“Key.Value”的形式,则删除的时候需要使用“Key”来删除。 例如:之前添加的tag为“a.b”,则系统升级后,删除时使用“a”。
  • 分页查询 OpenStack API提供分页查询功能,通过在查询列表请求的url中添加limit和marker参数实现分页返回列表信息。参数说明见下表,分页显示的结果以显示对象的创建时间(create_time)升序排序,如果对象信息没有创建时间,则用对象的ID升序排序。 参数名称 类型 必选 说明 limit String 否 每页显示的条目数量,当limit超过nova配置的每页最大显示数量时,response将响应错误码403。 marker String 否 取值为上一页数据的最后一条记录的id,当marker参数为无效id时,response将响应错误码400。 响应消息中的next ref,代表了下一页的url。
  • 基本概念 账号 用户注册时的账号,账号对其所拥有的资源及云服务具有完全的访问权限,可以重置用户密码、分配用户权限等。由于账号是付费主体,为了确保账号安全,建议您不要直接使用账号进行日常管理工作,而是创建用户并使用用户进行日常管理工作。 用户 由账号在IAM中创建的用户,是云服务的使用人员,具有身份凭证(密码和访问密钥)。 在我的凭证下,您可以查看账号ID和IAM用户ID。通常在调用API的鉴权过程中,您需要用到账号、用户和密码等信息。 区域(Region) 从地理位置和网络时延维度划分,同一个Region内共享弹性计算、块存储、对象存储、VPC网络、弹性公网IP、镜像等公共服务。Region分为通用Region和专属Region,通用Region指面向公共租户提供通用云服务的Region;专属Region指只承载同一类业务或只面向特定租户提供业务服务的专用Region。 详情请参见区域和可用区。 可用区(AZ,Availability Zone) 一个可用区是一个或多个物理数据中心的集合,有独立的风火水电,AZ内逻辑上再将计算、网络、存储等资源划分成多个集群。一个Region中的多个AZ间通过高速光纤相连,以满足用户跨AZ构建高可用性系统的需求。 项目 区域默认对应一个项目,这个项目由系统预置,用来隔离物理区域间的资源(计算资源、存储资源和网络资源),以默认项目为单位进行授权,用户可以访问您账号中该区域的所有资源。如果您希望进行更加精细的权限控制,可以在区域默认的项目中创建子项目,并在子项目中创建资源,然后以子项目为单位进行授权,使得用户仅能访问特定子项目中的资源,使得资源的权限控制更加精确。 图1 项目隔离模型 同样在我的凭证下,您可以查看项目ID。 企业项目 企业项目是项目的升级版,针对企业不同项目间的资源进行分组和管理,是逻辑隔离。企业项目中可以包含多个区域的资源,且项目中的资源可以迁入迁出。 关于企业项目ID的获取及企业项目特性的详细信息,请参见《企业管理用户指南》。
  • 概述 欢迎使用弹性云服务器(Elastic Cloud Server ,ECS)。弹性云服务器是由CPU、内存、镜像、云硬盘组成的一种可随时获取、弹性可扩展的计算服务器,同时它结合虚拟私有云、虚拟防火墙、数据多副本保存等能力,为您打造一个高效、可靠、安全的计算环境,确保您的服务持久稳定运行。弹性云服务器创建成功后,您就可以像使用自己的本地PC或物理服务器一样,在云上使用弹性云服务器。 本文档提供了弹性云服务器API的描述、语法、参数说明及示例等内容。支持的全部操作请参见API概览。 在调用ECS API之前,请确保已经充分了解ECS相关概念,详细信息请参见弹性云服务器的“产品介绍”。
  • 响应示例 { "networks": [ { "id": "04468f37-500a-4a80-88da-af823e7a1d6c", "cidr_v6": null, "gateway": null, "label": "network_demo1", "broadcast": null, "netmask": null, "cidr": null, "dns2": null, "gateway_v6": null, "netmask_v6": null, "dns1": null }, { "id": "1fcff959-21d0-4ba8-976a-974cb564c977", "cidr_v6": null, "gateway": null, "label": "network_demo2", "broadcast": null, "netmask": null, "cidr": null, "dns2": null, "gateway_v6": null, "netmask_v6": null, "dns1": null } ] }
  • 响应消息 表2 参数说明 参数 是否必选 参数类型 描述 networks 是 Array of objects 云服务器所在网络,内嵌云服务器网络详细信息。详情请参见表3所示。 表3 响应参数 参数 是否必选 参数类型 描述 id 是 String 网络的ID,UUID格式。 label 是 String 网络的名字 broadcast 是 String 固定为null cidr 是 String 固定为null cidr_v6 是 String 固定为null dns1 是 String 固定为null dns2 是 String 固定为null gateway 是 String 固定为null gateway_v6 是 String 固定为null netmask 是 String 固定为null netmask_v6 是 String 固定为null bridge 否 String 固定为null,UUID格式。
  • 响应示例 { "servers": [ { "tenant_id": "edcb94a885a84ed3a3fdf8ea4d2741da", "vm_state": "active", "flavor": { "disk": 0, "name": "s2.medium.2", "id": "s2.medium.2", "vcpus": 1, "ram": 2048, "gpus":[], "asic_accelerators":[] }, "availability_zone": "az1-dc1", "user_id": "bb7f23e27e7e46f3aaceb5f53a158bdc", "created": "2023-03-18T09:02:36Z", "name": "ecs-5e70", "task_state": null, "in_recycle_bin": false, "id": "b37fd80e-ac67-4d02-b9f1-9891c9c0fabf", "updated": "2023-03-18T09:08:54Z", "spod_id": null, "status": "ACTIVE" }, { "tenant_id": "edcb94a885a84ed3a3fdf8ea4d2741da", "vm_state": "active", "flavor": { "disk": 0, "name": "s3.small.1", "id": "s3.small.1", "vcpus": 1, "ram": 1024, "gpus":[], "asic_accelerators":[] }, "availability_zone": "az1-dc1", "user_id": "bb7f23e27e7e46f3aaceb5f53a158bdc", "created": "2023-03-18T04:29:44Z", "name": "ecs-f680", "task_state": null, "in_recycle_bin": false, "id": "8380dcc9-0eac-4407-9f9e-df8c9eddeacd", "updated": "2023-03-18T04:40:25Z", "spod_id": null, "status": "ACTIVE" } ], "servers_links": [ { "rel": "next", "href": "" } ], "request_id": "2da856f5-95e6-437f-9f8b-ae7dc00a9ace" }
  • 请求消息 请求参数如表2所示。 表2 请求参数 参数 是否必选 参数类型 描述 tags 是 Array of objects 标签列表,详情参见表3 action 是 String 操作标识(仅支持小写):create(创建) 表3 tags 字段数据结构说明 参数 是否必选 参数类型 描述 key 是 String 键。 不能为空。 对于同一资源键值唯一。 长度不超过36个字符。 标签的键必须唯一且输入不能为空。 value 是 String 值。 长度不超过43个字符。