Octavia API v2 (当前)¶
API 概述¶
本节将介绍 OpenStack Octavia v2 ReSTful HTTP API,并提供使用指南。
注意
为了区分 Octavia API 版本,我们已更新端点以支持以前文档中的 /v2.0 和新的路径 /v2。它们是完全相同的 API,并且 /v2.0 在 v2 API 的生命周期内将作为支持的别名。
服务端点¶
本文档其余部分描述的所有 API 调用都需要使用 OpenStack Identity 服务进行身份验证。身份验证后,可以从身份令牌返回的服务目录中提取“load-balancer”服务类型和“octavia”服务名称的基准 端点URL。
示例令牌片段(含服务目录)
{
"token": {
"catalog": [
{
"endpoints": [
{
"url": "http://198.51.100.10:9876/",
"interface": "public",
"region": "RegionOne",
"region_id": "RegionOne",
"id": "cd1c3c2dc6434c739ed0a12015373754"
}
],
"type": "load-balancer",
"id": "1209701aecd3453e9803119cd28cb013",
"name": "octavia"
}
]
}
}
例如,如果 端点URL 是 http://198.51.100.10:9876/,那么 /v2/lbaas/loadbalancers 的完整 API 调用是 http://198.51.100.10:9876/v2/lbaas/loadbalancers。
根据部署情况,load-balancer 端点URL 可能是 http 或 https、自定义端口、自定义路径,并且可能包含您的项目 ID。了解部署 URL 的唯一方法是使用服务目录。load-balancer 端点URL 绝不应硬编码在应用程序中,即使它们预计只在一个站点上工作。它们应始终从身份令牌中发现。
因此,在本文档的其余部分,我们将使用简写方式,其中 GET /v2/lbaas/loadbalancers 实际上意味着 GET {your_load-balancer_endpoint_URL}/v2/lbaas/loadbalancers。
Neutron-lbaas 和 Octavia v2 API¶
Octavia v2 API 与 neutron-lbaas v2 API 完全向后兼容,并且是 neutron-lbaas v2 API 的超集。这是为了提供一个简单的迁移路径,供目前使用 neutron-lbaas v2 API 的部署使用。您可以将应用程序使用的端点从 keystone 服务目录更新为使用 octavia 端点而不是 neutron 端点来处理负载均衡器活动。
在 neutron-lbaas 弃用期间,neutron 中将包含一个直通代理,允许通过 neutron 和 neutron-lbaas v2 API 发出的请求继续正常工作。强烈建议用户将其应用程序更新为通过 Octavia v2 API 访问负载均衡。
警告
通过 neutron 端点访问的负载均衡功能已被弃用,将在未来版本中移除。强烈建议用户迁移到使用 octavia 端点。
请求和响应格式¶
Octavia API v2 仅支持 JSON 数据序列化请求和响应格式。
请求格式¶
Octavia API v2 仅接受 JSON 数据序列化格式的请求。请求必须没有 Accept 头,或者 Accept 头必须与 application/json 兼容。唯一的例外是 Oslo 中间件健康检查端点。
响应格式¶
Octavia API v2 始终以 JSON 数据序列化格式响应。唯一的例外是 Oslo 中间件健康检查端点。
- 查询扩展
可以在请求 URI 中添加
.json扩展名。例如,以下请求中的.json扩展名是等效的:GET publicURL/loadbalancers
GET publicURL/loadbalancers.json
过滤和列选择¶
Octavia API v2 支持基于资源所有顶级属性的过滤。过滤器适用于所有列表请求。
例如,以下请求返回所有名为 foobar 的负载均衡器:
GET /v2/lbaas/loadbalancers?name=foobar
当指定多个过滤器时,Octavia API v2 仅返回满足所有过滤条件的 Objects。该操作在过滤器之间应用 AND 条件。
注意¶
Octavia 不提供 OR 过滤机制。
或者,您可以为每个过滤器发出不同的请求,并在客户端上从收到的响应构建一个响应集。
列选择¶
默认情况下,Octavia 返回任何显示或列表调用的所有属性。Octavia API v2 有一种机制来限制返回的属性集。例如,返回 id。
您可以使用 fields 查询参数来控制从 Octavia API v2 返回的属性。
例如,以下请求为每个负载均衡器仅返回 id 和 name:
GET /v2/lbaas/loadbalancers.json?fields=id&fields=name
同步与异步插件行为¶
Octavia API v2 提供了一个由监听器、池和成员组成的逻辑模型。由 OpenStack Octavia 插件负责与底层基础设施通信,以确保负载均衡与逻辑模型一致。插件可能会异步执行这些操作。
当 API 客户端通过发出 HTTP **POST**、**PUT** 或 **DELETE** 请求来修改逻辑模型时,API 调用可能在插件修改底层虚拟和物理负载均衡设备之前返回。但是,API 客户端保证所有后续 API 调用都能正确反映更改后的逻辑模型。
例如,如果客户端发出 HTTP **PUT** 请求来设置成员的权重,则不能保证在新权重生效时 HTTP 调用会返回。这由 HTTP 响应代码 202 指示。
您可以使用 provisioning_status 属性来确定 Octavia 插件是否已成功完成资源的配置。
批量创建¶
Octavia v2 API 不支持批量创建。您不能通过一次 API 调用创建多个负载均衡器。
Octavia v2 API 支持单次调用创建,允许您通过一次 API 调用创建完全配置的负载均衡器。这在本文档的负载均衡器创建部分有讨论。
分页¶
为了减少服务负载,列表操作每次将返回最大数量的项目。要导航集合,可以在 URI 中设置 limit、marker 和 page_reverse 参数。例如:
?limit=100&marker=1234&page_reverse=False
参数 marker 是前一个列表中最后一个项目的 ID。参数 limit 设置页面大小。参数 page_reverse 设置分页方向。这些参数是可选的。如果客户端请求的 limit 超出部署配置的最大 limit,则服务器将返回最大 limit 数量的项目。
为了方便起见,列表响应包含原子“next”链接和“previous”链接。使用‘page_reverse=False’请求的列表的最后一页将不包含“next”链接,使用‘page_reverse=True’请求的列表的最后一页将不包含“previous”链接。以下示例说明了三个项目的两页。第一页是通过以下方式检索的:
GET http://198.51.100.10:9876/v2/lbaas/loadbalancers.json?limit=2
如果特定插件不支持分页操作,Octavia API v2 将模拟分页行为,以便用户无论后台运行的是哪个插件都可以获得相同的行为。
示例负载均衡器列表,第一页:JSON 请求
GET /v2/lbaas/loadbalancers.json?limit=2 HTTP/1.1
Host: 198.51.100.10:9876
Content-Type: application/json
Accept: application/json
示例负载均衡器列表,第一页:JSON 响应
{
"loadbalancers": [
{
"admin_state_up": true,
"listeners": [],
"vip_subnet_id": "08dce793-daef-411d-a896-d389cd45b1ea",
"pools": [],
"provider": "octavia",
"description": "Best App load balancer 1",
"name": "bestapplb1",
"operating_status": "ONLINE",
"id": "34d5f4a5-cbbc-43a0-878f-b8a26370e6e7",
"provisioning_status": "ACTIVE",
"vip_port_id": "1e20d91d-8df9-4c15-9778-28bc89226c19",
"vip_address": "203.0.113.10",
"project_id": "bf325b04-e7b1-4002-9b10-f4984630367f"
},
{
"admin_state_up": true,
"listeners": [],
"vip_subnet_id": "08dce793-daef-411d-a896-d389cd45b1ea",
"pools": [],
"provider": "octavia",
"description": "Second Best App load balancer 1",
"name": "2ndbestapplb1",
"operating_status": "ONLINE",
"id": "0fdb0ca7-0a38-4aea-891c-daaed40bcafe",
"provisioning_status": "ACTIVE",
"vip_port_id": "21f7ac04-6824-4222-93cf-46e0d70607f9",
"vip_address": "203.0.113.20",
"project_id": "bf325b04-e7b1-4002-9b10-f4984630367f"
}
],
"loadbalancers_links": [
{
"href": "http://198.51.100.10:9876/v2/lbaas/loadbalancers.json?limit=2&marker=0fdb0ca7-0a38-4aea-891c-daaed40bcafe",
"rel": "next"
},
{
"href": "http://198.51.100.10:9876/v2/lbaas/loadbalancers.json?limit=2&marker=34d5f4a5-cbbc-43a0-878f-b8a26370e6e7&page_reverse=True",
"rel": "previous"
}
]
}
最后一页将不显示“next”链接
示例负载均衡器列表,最后一页:JSON 请求
GET /v2/lbaas/loadbalancers.json?limit=2&marker=4ef465f3-0233-44af-b93d-9d3eae4daf85 HTTP/1.1
Host: 198.51.100.10:9876
Content-Type: application/json
Accept: application/json
示例负载均衡器列表,最后一页:JSON 响应
{
"loadbalancers": [
{
"admin_state_up": true,
"listeners": [],
"vip_subnet_id": "08dce793-daef-411d-a896-d389cd45b1ea",
"pools": [],
"provider": "octavia",
"description": "Other App load balancer 1",
"name": "otherapplb1",
"operating_status": "ONLINE",
"id": "4ef465f3-0233-44af-b93d-9d3eae4daf85",
"provisioning_status": "ACTIVE",
"vip_port_id": "f777a1c7-7f59-4a36-ad34-24dfebaf19e6",
"vip_address": "203.0.113.50",
"project_id": "bf325b04-e7b1-4002-9b10-f4984630367f"
}
],
"loadbalancers_links": [
{
"href": "http://198.51.100.10:9876/v2/lbaas/loadbalancers.json?limit=2&marker=4ef465f3-0233-44af-b93d-9d3eae4daf85&page_reverse=True",
"rel": "previous"
}
]
}
排序¶
排序通过使用 ‘sort’ 查询字符串参数来确定。此参数的值是以逗号分隔的排序键列表。排序方向可以可选地附加到每个排序键,用 ‘:’ 字符分隔。
支持的排序方向是“asc”(升序)或“desc”(降序)。
调用者可以(但不是必需)为每个键指定排序方向。如果未为键指定排序方向,则服务器将设置默认值。
例如
仅指定排序键
sort=key1,key2,key3‘key1’是第一个键,‘key2’是第二个键,依此类推。
排序方向由服务器默认
指定了某些排序方向
sort=key1:asc,key2,key3任何没有相应方向的排序键都将使用默认值
‘key1’是第一个键(升序),‘key2’是第二个键(由服务器默认方向),依此类推。
指定了相同数量的排序键和方向
sort=key1:asc,key2:desc,key3:asc每个键都与相应的方向配对
‘key1’是第一个键(升序),‘key2’是第二个键(降序),依此类推。
您还可以使用 sort_key 和 sort_dir 参数对列表操作的结果进行排序。目前排序不适用于资源的扩展属性。 sort_key 和 sort_dir 可以重复,并且提供的 sort_key 和 sort_dir 的数量必须相同。 sort_dir 参数表示排序方向。可接受的值是 asc(升序)和 desc(降序)。
如果特定插件不支持排序操作,Octavia API v2 将模拟排序行为,以便用户无论后台运行的是哪个插件都可以获得相同的行为。
响应代码¶
Octavia v2 API 使用以下 HTTP 响应状态码。
成功¶
代码 |
描述 |
|---|---|
200 |
|
202 |
|
204 |
|
故障¶
Octavia API v2 在处理请求时发生失败时会返回错误响应。Octavia 仅使用标准的 HTTP 错误代码。4nn 错误表示客户端发送的特定请求存在问题。
代码 |
描述 |
|---|---|
400 |
|
401 |
|
403 |
|
404 |
|
409 |
|
500 |
|
503 |
|
状态码¶
Octavia API v2 实体在响应体中有两个状态码。provisioning_status 描述了实体的生命周期状态,而 operating_status 提供了实体的观察状态。
例如,一个成员可能处于 PENDING_UPDATE 的 provisioning_status,并具有 ONLINE 的 operating_status。这表明该成员正在进行更新操作,处于不可变状态,但它是健康的并且能够处理请求。当用户发出更新成员权重的请求时,可能会出现这种情况。
运行状态码¶
代码 |
描述 |
|---|---|
ONLINE |
|
DRAINING |
|
OFFLINE |
|
DEGRADED |
|
ERROR |
|
NO_MONITOR |
|
配置状态码¶
代码 |
描述 |
|---|---|
ACTIVE |
|
DELETED |
|
ERROR |
|
PENDING_CREATE |
|
PENDING_UPDATE |
|
PENDING_DELETE |
|
处于 PENDING_* 状态的实体是不可变的,在请求的操作完成后才能修改。当异步操作完成后,实体将返回到 ACTIVE 的配置状态。
处于 ERROR 状态的实体配置失败。可以删除并重新创建该实体。
协议组合(监听器/池)¶
监听器和池可以通过监听器的 default_pool_id 或 l7策略的 redirect_pool_id 关联。监听器和池都必须设置协议参数,但监听器和池之间的关联不是任意的,并且在协议方面有一些限制。
有效的协议组合¶
监听器
池
|
HTTP
|
HTTPS
|
SCTP
|
TCP
|
TERMINATED_HTTPS
|
UDP
|
|---|---|---|---|---|---|---|
HTTP |
Y |
N |
N |
Y |
Y |
N |
HTTPS |
N |
Y |
N |
Y |
N |
N |
PROXY |
Y |
Y |
N |
Y |
Y |
N |
PROXYV2 |
Y |
Y |
N |
Y |
Y |
N |
SCTP |
N |
N |
Y |
N |
N |
N |
TCP |
N |
Y |
N |
Y |
N |
N |
UDP |
N |
N |
N |
N |
N |
Y |
“Y”表示组合有效,“N”表示无效。
HTTPS 协议是 HTTPS 直通。对于大多数提供商,这被视为 TCP 协议。一些高级提供商可能支持通过会话 ID 使用 HTTPS 会话持久性。Amphora 提供商将 HTTPS 视为 TCP 流,但目前不支持使用会话 ID 的 HTTPS 会话持久性。
池协议 PROXY 将使用监听器协议作为池协议,但会将该协议包装在代理协议中。在监听器协议 TERMINATED_HTTPS 的情况下,池协议 PROXY 将是包装在代理协议中的 HTTP。
协议组合(池/健康监控)¶
池和健康监控在协议方面也有关联。池设置实际成员连接的协议参数,健康监控为健康检查设置类型。健康检查类型受池协议的限制。
有效的协议组合¶
健康监控
池
|
HTTP
|
HTTPS
|
PING
|
SCTP
|
TCP
|
TLS-HELLO
|
UDP-CONNECT
|
|---|---|---|---|---|---|---|---|
HTTP |
Y |
Y |
Y |
N |
Y |
Y |
N |
HTTPS |
Y |
Y |
Y |
N |
Y |
Y |
N |
PROXY |
Y |
Y |
Y |
N |
Y |
Y |
N |
PROXYV2 |
Y |
Y |
Y |
N |
Y |
Y |
N |
SCTP |
Y |
N |
N |
Y |
Y |
N |
Y |
TCP |
Y |
Y |
Y |
N |
Y |
Y |
N |
UDP |
Y |
N |
N |
Y |
Y |
N |
Y |
“Y”表示组合有效,“N”表示无效。
这些组合大多如您所料,适用于除 UDP/SCTP 池协议之外的所有协议:非 UDP/SCTP 池可以具有除 UDP-CONNECT 和 SCTP 之外的任何检查类型的健康监控。但对于 UDP 或 SCTP 池,情况要复杂一些。UDP 和 SCTP 池支持 UDP-CONNECT 和 SCTP,但也支持 HTTP 和 TCP 检查。HTTPS 检查在技术上可行,但尚未实现。
负载均衡器¶
列出项目的所有负载均衡器。
使用 fields 查询参数来控制响应体中返回的字段。此外,您还可以使用查询字符串参数过滤结果。有关信息,请参阅 过滤和列选择。
管理员用户可以指定一个不同于自己的项目 ID 来列出其他项目的负载均衡器。
列表可能为空。
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
由于凭据无效,访问被拒绝。 |
500 - 内部服务器错误 |
服务出现问题,导致无法满足请求。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
fields (可选) |
查询 |
字符串 |
您希望服务器返回的字段。如果未指定 |
project_id (可选) |
查询 |
字符串 |
要查询的项目 ID。 |
Curl 示例¶
curl -X GET -H "X-Auth-Token: <token>" http://198.51.100.10:9876/v2/lbaas/loadbalancers?project_id=e3cd678b11784734bc366148aa37580e
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
additional_vips (可选) |
body |
数组 |
一组定义“其他 VIP”的 JSON 对象列表。格式为 版本 2.26 新增 |
admin_state_up |
body |
布尔值 |
资源的管理员状态,即启用( |
availability_zone |
body |
对象 |
可用区域名称。 |
created_at |
body |
字符串 |
资源创建的 UTC 日期和时间戳。 |
description |
body |
字符串 |
资源的易于阅读的描述。 |
flavor_id |
body |
uuid |
flavor 的 ID。 |
id |
body |
uuid |
负载均衡器的 ID。 |
listeners |
body |
数组 |
关联的监听器 ID(如果存在)。 |
loadbalancers |
body |
数组 |
|
name |
body |
字符串 |
资源的易于阅读的名称。 |
operating_status |
body |
字符串 |
资源的运行状态。请参阅 运行状态码。 |
pools |
body |
数组 |
关联的池 ID(如果存在)。 |
project_id |
body |
字符串 |
拥有此资源的项目的 ID。 |
provider |
body |
字符串 |
负载均衡器的提供商名称。 |
provisioning_status |
body |
字符串 |
资源的配置状态。请参阅 配置状态码。 |
tags |
body |
数组 |
分配给资源的简单字符串列表。 版本 2.5 新增 |
updated_at |
body |
字符串 |
上次更新资源的 UTC 日期和时间戳。 |
vip_address |
body |
字符串 |
虚拟 IP (VIP) 的 IP 地址。 |
vip_network_id |
body |
uuid |
虚拟 IP (VIP) 的网络 ID。 |
vip_port_id |
body |
uuid |
虚拟 IP (VIP) 端口的 ID。 |
vip_qos_policy_id |
body |
uuid |
将应用于虚拟 IP (VIP) 的 QoS 策略的 ID。 |
vip_subnet_id |
body |
uuid |
虚拟 IP (VIP) 的子网 ID。 |
vip_sg_ids |
body |
数组 |
负载均衡器虚拟 IP (VIP) 端口的安全组 ID 列表。 版本 2.29 新增 |
vip_vnic_type |
body |
字符串 |
负载均衡器使用的 VIP vNIC 类型。可以是 版本 2.28 新增 |
响应示例¶
{
"loadbalancers": [
{
"description": "My favorite load balancer",
"admin_state_up": true,
"project_id": "e3cd678b11784734bc366148aa37580e",
"provisioning_status": "ACTIVE",
"flavor_id": "",
"vip_subnet_id": "d4af86e1-0051-488c-b7a0-527f97490c9a",
"listeners": [
{
"id": "023f2e34-7806-443b-bfae-16c324569a3d"
}
],
"vip_address": "203.0.113.50",
"vip_network_id": "d0d217df-3958-4fbf-a3c2-8dad2908c709",
"vip_port_id": "b4ca07d1-a31e-43e2-891a-7d14f419f342",
"additional_vips": [],
"provider": "octavia",
"pools": [
{
"id": "9aa16cdc-8d18-47b9-aba9-ec044531a79f"
}
],
"created_at": "2017-02-28T00:41:44",
"updated_at": "2017-02-28T00:43:30",
"id": "607226db-27ef-4d41-ae89-f2a800e9c2db",
"operating_status": "ONLINE",
"name": "best_load_balancer",
"vip_qos_policy_id": "ec4f78ca-8da8-4e99-8a1a-e3b94595a7a3",
"availability_zone": "my_az",
"tags": [],
"vip_vnic_type": "normal"
}
]
}
创建负载均衡器。
此操作通过使用您在请求对象中定义的配置来配置新的负载均衡器。在 API 验证请求并开始配置过程后,API 将返回一个响应对象,其中包含唯一的 ID 和负载均衡器配置的状态。
在响应中,负载均衡器的 配置状态 为 ACTIVE、PENDING_CREATE 或 ERROR。
如果状态为 PENDING_CREATE,请发出 GET /v2/lbaas/loadbalancers/{loadbalancer_id} 以查看配置操作的进度。当负载均衡器状态更改为 ACTIVE 时,负载均衡器将成功配置并可进行进一步配置。
如果 API 由于数据不足或数据无效而无法满足请求,则服务将返回 HTTP Bad Request (400) 响应代码,并在响应体中提供失败信息。验证错误要求您纠正错误并重新提交请求。
管理员用户可以指定一个不同于自己的项目 ID 来为其他项目创建负载均衡器。
可选的 flavor_id 属性可用于使用预配置的 octavia flavor 创建负载均衡器。Flavor 由管理员创建,以允许自定义负载均衡器配置,例如为负载均衡器分配更多内存。
可选的来自 Neutron 的 vip_qos_policy_id 属性可用于在负载均衡器 VIP 上应用 QoS 策略,也可以传递“null”值以移除 QoS 策略。
您还可以指定 provider 属性来创建负载均衡器。 provider 属性指定了用于创建负载均衡器的后端。这可以是默认提供商(octavia)或已安装的供应商提供的 provider。设置 flavor_id 和 provider 将导致冲突错误,如果提供商与已配置的 flavor 配置文件的提供商不匹配。
指定虚拟 IP (VIP) 是必需的。有三种方法可以为负载均衡器指定 VIP 网络:
提供
vip_port_id。为
vip_port_id提供 neutron 端口 ID 会告诉 octavia 使用此端口作为 VIP。Octavia 可能需要更改或移除某些端口设置,但 IP 地址将保留。如果端口有多个子网,您必须指定vip_subnet_id或vip_address以明确指示应使用哪个地址作为 VIP。提供
vip_network_id。当指定
vip_network_ip时,除非同时指定了vip_subnet_id和vip_address,否则 octavia 将从网络中选择一个子网,优先选择 IPv4 而不是 IPv6 子网。提供
vip_subnet_id。指定 neutron 子网 ID 将告诉 octavia 在此子网上创建一个 neutron 端口,并从该子网分配一个 IP 地址(如果未指定
vip_address)。如果指定了vip_address,octavia 将尝试从子网中为 VIP 地址分配vip_address。
还可以通过 additional_vips 字段指定其他 VIP,方法是提供一个 JSON 对象列表,其中包含 subnet_id 和可选的 ip_address。所有附加子网必须属于与主 VIP 相同的网络。
可选的 vip_sg_ids 属性可用于设置应用于负载均衡器 VIP 端口的自定义 Neutron 安全组。使用此选项时,Octavia 不会管理监听器的安全性,用户必须设置安全组规则以允许 VIP 端口上的网络流量。vip_sg_ids 与 SR-IOV 负载均衡器不兼容,并且如果负载均衡器具有使用 allowed_cidrs 的监听器,则无法设置。
成功¶
代码 |
原因 |
|---|---|
201 - 已创建 |
请求已完成,并创建了新资源。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
由于凭据无效,访问被拒绝。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
500 - 内部服务器错误 |
服务出现问题,导致无法满足请求。 |
503 - 服务不可用 |
服务现在无法处理请求。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
additional_vips (可选) |
body |
数组 |
一组定义“其他 VIP”的 JSON 对象列表。格式为 版本 2.26 新增 |
admin_state_up (可选) |
body |
布尔值 |
资源的管理员状态,即启用( |
availability_zone (可选) |
body |
对象 |
可用区域名称。 |
description (可选) |
body |
字符串 |
资源的易于阅读的描述。 |
flavor_id (可选) |
body |
uuid |
flavor 的 ID。 |
listeners (可选) |
body |
数组 |
关联的监听器 ID(如果存在)。 |
loadbalancer |
body |
对象 |
负载均衡器对象。 |
name (可选) |
body |
字符串 |
资源的易于阅读的名称。 |
project_id (可选) |
body |
字符串 |
拥有此资源的项目的 ID。 |
provider (可选) |
body |
字符串 |
负载均衡器的提供商名称。默认为 |
tags (可选) |
body |
数组 |
分配给资源的简单字符串列表。 版本 2.5 新增 |
vip_address (可选) |
body |
字符串 |
虚拟 IP (VIP) 的 IP 地址。 |
vip_network_id (可选) |
body |
uuid |
虚拟 IP (VIP) 的网络 ID。必须指定 |
vip_port_id (可选) |
body |
uuid |
虚拟 IP (VIP) 端口的 ID。必须指定 |
vip_qos_policy_id (可选) |
body |
uuid |
将应用于虚拟 IP (VIP) 的 QoS 策略的 ID。 |
vip_subnet_id (可选) |
body |
uuid |
虚拟 IP (VIP) 的子网 ID。必须指定 |
vip_sg_ids (可选) |
body |
数组 |
负载均衡器虚拟 IP (VIP) 端口的安全组 ID 列表。 版本 2.29 新增 |
请求示例¶
{
"loadbalancer": {
"description": "My favorite load balancer",
"admin_state_up": true,
"project_id": "e3cd678b11784734bc366148aa37580e",
"vip_subnet_id": "d4af86e1-0051-488c-b7a0-527f97490c9a",
"vip_address": "203.0.113.50",
"additional_vips": [
{"subnet_id": "3ca40b2e-c286-4e53-bdb9-dd01c8a0ad6d", "ip_address": "2001:db8::b33f"},
{"subnet_id": "44d92b92-510f-4c05-8058-bf5a17b4d41c"}
],
"provider": "octavia",
"name": "best_load_balancer",
"vip_qos_policy_id": "ec4f78ca-8da8-4e99-8a1a-e3b94595a7a3",
"availability_zone": "my_az",
"tags": ["test_tag"]
}
}
Curl 示例¶
curl -X POST -H "Content-Type: application/json" -H "X-Auth-Token: <token>" -d '{"loadbalancer": {"description": "My favorite load balancer", "admin_state_up": true, "project_id": "e3cd678b11784734bc366148aa37580e", "flavor_id": "a7ae5d5a-d855-4f9a-b187-af66b53f4d04", "vip_subnet_id": "d4af86e1-0051-488c-b7a0-527f97490c9a", "vip_address": "203.0.113.50", "additional_vips": [{"subnet_id": "3ca40b2e-c286-4e53-bdb9-dd01c8a0ad6d", "ip_address": "2001:db8::b33f"}, {"subnet_id": "44d92b92-510f-4c05-8058-bf5a17b4d41c"}], "provider": "octavia", "name": "best_load_balancer", "vip_qos_policy_id": "ec4f78ca-8da8-4e99-8a1a-e3b94595a7a3", "availability_zone": "my_az", "tags": ["test_tag"]}}' http://198.51.100.10:9876/v2/lbaas/loadbalancers
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
additional_vips (可选) |
body |
数组 |
一组定义“其他 VIP”的 JSON 对象列表。格式为 版本 2.26 新增 |
admin_state_up |
body |
布尔值 |
资源的管理员状态,即启用( |
availability_zone |
body |
对象 |
可用区域名称。 |
created_at |
body |
字符串 |
资源创建的 UTC 日期和时间戳。 |
description |
body |
字符串 |
资源的易于阅读的描述。 |
flavor_id |
body |
uuid |
flavor 的 ID。 |
id |
body |
uuid |
负载均衡器的 ID。 |
listeners |
body |
数组 |
关联的监听器 ID(如果存在)。 |
loadbalancer |
body |
对象 |
负载均衡器对象。 |
name |
body |
字符串 |
资源的易于阅读的名称。 |
operating_status |
body |
字符串 |
资源的运行状态。请参阅 运行状态码。 |
pools |
body |
数组 |
关联的池 ID(如果存在)。 |
project_id |
body |
字符串 |
拥有此资源的项目的 ID。 |
provider |
body |
字符串 |
负载均衡器的提供商名称。 |
provisioning_status |
body |
字符串 |
资源的配置状态。请参阅 配置状态码。 |
tags |
body |
数组 |
分配给资源的简单字符串列表。 版本 2.5 新增 |
updated_at |
body |
字符串 |
上次更新资源的 UTC 日期和时间戳。 |
vip_address |
body |
字符串 |
虚拟 IP (VIP) 的 IP 地址。 |
vip_network_id |
body |
uuid |
虚拟 IP (VIP) 的网络 ID。 |
vip_port_id |
body |
uuid |
虚拟 IP (VIP) 端口的 ID。 |
vip_qos_policy_id |
body |
uuid |
将应用于虚拟 IP (VIP) 的 QoS 策略的 ID。 |
vip_subnet_id |
body |
uuid |
虚拟 IP (VIP) 的子网 ID。 |
vip_sg_ids |
body |
数组 |
负载均衡器虚拟 IP (VIP) 端口的安全组 ID 列表。 版本 2.29 新增 |
vip_vnic_type |
body |
字符串 |
负载均衡器使用的 VIP vNIC 类型。可以是 版本 2.28 新增 |
响应示例¶
{
"loadbalancer": {
"description": "My favorite load balancer",
"admin_state_up": true,
"project_id": "e3cd678b11784734bc366148aa37580e",
"provisioning_status": "PENDING_CREATE",
"flavor_id": "",
"vip_subnet_id": "d4af86e1-0051-488c-b7a0-527f97490c9a",
"vip_address": "203.0.113.50",
"vip_network_id": "d0d217df-3958-4fbf-a3c2-8dad2908c709",
"vip_port_id": "b4ca07d1-a31e-43e2-891a-7d14f419f342",
"additional_vips": [
{"subnet_id": "3ca40b2e-c286-4e53-bdb9-dd01c8a0ad6d", "ip_address": "2001:db8::b33f"},
{"subnet_id": "44d92b92-510f-4c05-8058-bf5a17b4d41c", "ip_address": "198.51.100.4"}
],
"provider": "octavia",
"created_at": "2017-02-28T00:41:44",
"updated_at": "2017-02-28T00:43:30",
"id": "607226db-27ef-4d41-ae89-f2a800e9c2db",
"operating_status": "OFFLINE",
"name": "best_load_balancer",
"vip_qos_policy_id": "ec4f78ca-8da8-4e99-8a1a-e3b94595a7a3",
"availability_zone": "my_az",
"tags": ["test_tag"],
"vip_vnic_type": "normal"
}
}
创建完全配置的负载均衡器¶
您可以通过在请求中指定其他元素或属性来在创建时配置负载均衡器的所有已记录功能。
注意:所有池都必须有名称,并且只能完全定义一次。要从多个对象引用池,请在所有后续引用中仅提供池名称。
请求示例¶
{
"loadbalancer": {
"description": "My favorite load balancer",
"admin_state_up": true,
"project_id": "e3cd678b11784734bc366148aa37580e",
"flavor_id": "",
"listeners": [
{
"name": "http_listener",
"protocol": "HTTP",
"protocol_port": 80,
"default_pool": {
"name": "rr_pool",
"protocol": "HTTP",
"lb_algorithm": "ROUND_ROBIN",
"healthmonitor": {
"type": "HTTP",
"delay": "3",
"expected_codes": "200,201,202",
"http_method": "GET",
"max_retries": 2,
"timeout": 1,
"url_path": "/index.html"
},
"members": [
{
"address": "192.0.2.16",
"protocol_port": 80
},
{
"address": "192.0.2.19",
"protocol_port": 80
}
]
}
},
{
"name": "https_listener",
"protocol": "HTTPS",
"protocol_port": 443,
"default_pool": {
"name": "https_pool"
},
"tags": ["test_tag"]
},
{
"name": "redirect_listener",
"protocol": "HTTP",
"protocol_port": 8080,
"l7policies": [
{
"action": "REDIRECT_TO_URL",
"name": "redirect_policy",
"redirect_url": "https://www.example.com/",
"admin_state_up": true
}
]
}
],
"pools": [
{
"name": "https_pool",
"protocol": "HTTPS",
"lb_algorithm": "ROUND_ROBIN",
"healthmonitor": {
"type": "HTTPS",
"delay": "3",
"max_retries": 2,
"timeout": 1
},
"members": [
{
"address": "192.0.2.51",
"protocol_port": 80
},
{
"address": "192.0.2.52",
"protocol_port": 80
}
]
}
],
"vip_subnet_id": "d4af86e1-0051-488c-b7a0-527f97490c9a",
"vip_address": "203.0.113.50",
"provider": "octavia",
"name": "best_load_balancer",
"vip_qos_policy_id": "ec4f78ca-8da8-4e99-8a1a-e3b94595a7a3",
"availability_zone": "my_az",
"tags": ["test_tag"]
}
}
响应示例¶
{
"loadbalancer": {
"description": "My favorite load balancer",
"admin_state_up": true,
"project_id": "e3cd678b11784734bc366148aa37580e",
"provisioning_status": "ACTIVE",
"flavor_id": "",
"vip_subnet_id": "d4af86e1-0051-488c-b7a0-527f97490c9a",
"listeners": [
{
"l7policies": [],
"protocol": "HTTP",
"description": "",
"default_tls_container_ref": null,
"admin_state_up": true,
"default_pool": {
"id": "c8cec227-410a-4a5b-af13-ecf38c2b0abb"
},
"project_id": "e3cd678b11784734bc366148aa37580e",
"default_tls_container_id": null,
"connection_limit": -1,
"sni_container_refs": [],
"protocol_port": 80,
"id": "a99995c6-4f04-4ed3-a37f-ae58f6e7e5e1",
"name": "http_listener"
},
{
"l7policies": [],
"protocol": "HTTPS",
"description": "",
"default_tls_container_ref": null,
"admin_state_up": true,
"default_pool": {
"id": "b0577aff-c1f9-40c6-9a3b-7b1d2a669136"
},
"project_id": "e3cd678b11784734bc366148aa37580e",
"default_tls_container_id": null,
"connection_limit": -1,
"sni_container_refs": [],
"protocol_port": 443,
"id": "73c6c564-f215-48e9-91d6-f10bb3454954",
"name": "https_listener",
"tags": ["test_tag"]
},
{
"l7policies": [
{
"description": "",
"admin_state_up": true,
"rules": [],
"project_id": "e3cd678b11784734bc366148aa37580e",
"listener_id": "95de30ec-67f4-437b-b3f3-22c5d9ef9828",
"redirect_url": "https://www.example.com/",
"action": "REDIRECT_TO_URL",
"position": 1,
"id": "d0553837-f890-4981-b99a-f7cbd6a76577",
"name": "redirect_policy"
}
],
"protocol": "HTTP",
"description": "",
"default_tls_container_ref": null,
"admin_state_up": true,
"default_pool": null,
"project_id": "e3cd678b11784734bc366148aa37580e",
"default_tls_container_id": null,
"connection_limit": -1,
"sni_container_refs": [],
"protocol_port": 8080,
"id": "95de30ec-67f4-437b-b3f3-22c5d9ef9828",
"name": "redirect_listener"
}
],
"vip_address": "203.0.113.50",
"vip_network_id": "d0d217df-3958-4fbf-a3c2-8dad2908c709",
"vip_port_id": "b4ca07d1-a31e-43e2-891a-7d14f419f342",
"additional_vips": [],
"provider": "octavia",
"pools": [
{
"lb_algorithm": "ROUND_ROBIN",
"protocol": "HTTP",
"description": "",
"admin_state_up": true,
"project_id": "e3cd678b11784734bc366148aa37580e",
"session_persistence": null,
"healthmonitor": {
"name": "",
"admin_state_up": true,
"project_id": "e3cd678b11784734bc366148aa37580e",
"delay": 3,
"expected_codes": "200,201,202",
"max_retries": 2,
"http_method": "GET",
"timeout": 1,
"max_retries_down": 3,
"url_path": "/index.html",
"type": "HTTP",
"id": "a8a2aa3f-d099-4752-8265-e6472f8147f9"
},
"members": [
{
"name": "",
"weight": 1,
"admin_state_up": true,
"subnet_id": "bbb35f84-35cc-4b2f-84c2-a6a29bba68aa",
"project_id": "e3cd678b11784734bc366148aa37580e",
"address": "192.0.2.16",
"protocol_port": 80,
"id": "7d19ad6c-d549-453e-a5cd-05382c6be96a"
},
{
"name": "",
"weight": 1,
"admin_state_up": true,
"subnet_id": "bbb35f84-35cc-4b2f-84c2-a6a29bba68aa",
"project_id": "e3cd678b11784734bc366148aa37580e",
"address": "192.0.2.19",
"protocol_port": 80,
"id": "a167402b-caa6-41d5-b4d4-bde7f2cbfa5e"
}
],
"id": "c8cec227-410a-4a5b-af13-ecf38c2b0abb",
"name": "rr_pool"
},
{
"lb_algorithm": "ROUND_ROBIN",
"protocol": "HTTPS",
"description": "",
"admin_state_up": true,
"project_id": "e3cd678b11784734bc366148aa37580e",
"session_persistence": null,
"healthmonitor": {
"name": "",
"admin_state_up": true,
"project_id": "e3cd678b11784734bc366148aa37580e",
"delay": 3,
"expected_codes": "200,201,202",
"max_retries": 2,
"http_method": "GET",
"timeout": 1,
"max_retries_down": 3,
"url_path": "/index.html",
"type": "HTTPS",
"id": "d5bb7712-26b7-4809-8c14-3b407c0cb00d"
},
"members": [
{
"name": "",
"weight": 1,
"admin_state_up": true,
"subnet_id": "bbb35f84-35cc-4b2f-84c2-a6a29bba68aa",
"project_id": "e3cd678b11784734bc366148aa37580e",
"address": "192.0.2.51",
"protocol_port": 80,
"id": "f83832d5-1f22-45fa-866a-4abea36e0886"
},
{
"name": "",
"weight": 1,
"admin_state_up": true,
"subnet_id": "bbb35f84-35cc-4b2f-84c2-a6a29bba68aa",
"project_id": "e3cd678b11784734bc366148aa37580e",
"address": "192.0.2.52",
"protocol_port": 80,
"id": "f83832d5-1f22-45fa-866a-4abea36e0886"
}
],
"id": "b0577aff-c1f9-40c6-9a3b-7b1d2a669136",
"name": "https_pool"
}
],
"created_at": "2017-02-28T00:41:44",
"updated_at": "2017-02-28T00:43:30",
"id": "607226db-27ef-4d41-ae89-f2a800e9c2db",
"operating_status": "ONLINE",
"name": "best_load_balancer",
"vip_qos_policy_id": "ec4f78ca-8da8-4e99-8a1a-e3b94595a7a3",
"availability_zone": "my_az",
"tags": ["test_tag"],
"vip_vnic_type": "normal"
}
}
显示负载均衡器的详细信息。
如果您不是管理员用户,并且负载均衡器对象不属于您的项目,则服务将返回 HTTP Forbidden (403) 响应代码。
此操作不需要请求正文。
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
401 - 未授权 |
由于凭据无效,访问被拒绝。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
500 - 内部服务器错误 |
服务出现问题,导致无法满足请求。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
fields (可选) |
查询 |
字符串 |
您希望服务器返回的字段。如果未指定 |
loadbalancer_id |
路径 |
uuid |
要查询的负载均衡器的 ID。 |
Curl 示例¶
curl -X GET -H "X-Auth-Token: <token>" http://198.51.100.10:9876/v2/lbaas/loadbalancers/8a562351-f0fb-424c-a0af-513461424ea5
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
additional_vips (可选) |
body |
数组 |
一组定义“其他 VIP”的 JSON 对象列表。格式为 版本 2.26 新增 |
admin_state_up |
body |
布尔值 |
资源的管理员状态,即启用( |
availability_zone |
body |
对象 |
可用区域名称。 |
created_at |
body |
字符串 |
资源创建的 UTC 日期和时间戳。 |
description |
body |
字符串 |
资源的易于阅读的描述。 |
flavor_id |
body |
uuid |
flavor 的 ID。 |
id |
body |
uuid |
负载均衡器的 ID。 |
loadbalancer |
body |
对象 |
负载均衡器对象。 |
listeners |
body |
数组 |
关联的监听器 ID(如果存在)。 |
name |
body |
字符串 |
资源的易于阅读的名称。 |
operating_status |
body |
字符串 |
资源的运行状态。请参阅 运行状态码。 |
pools |
body |
数组 |
关联的池 ID(如果存在)。 |
project_id |
body |
字符串 |
拥有此资源的项目的 ID。 |
provider |
body |
字符串 |
负载均衡器的提供商名称。 |
provisioning_status |
body |
字符串 |
资源的配置状态。请参阅 配置状态码。 |
tags |
body |
数组 |
分配给资源的简单字符串列表。 版本 2.5 新增 |
updated_at |
body |
字符串 |
上次更新资源的 UTC 日期和时间戳。 |
vip_address |
body |
字符串 |
虚拟 IP (VIP) 的 IP 地址。 |
vip_network_id |
body |
uuid |
虚拟 IP (VIP) 的网络 ID。 |
vip_port_id |
body |
uuid |
虚拟 IP (VIP) 端口的 ID。 |
vip_qos_policy_id |
body |
uuid |
将应用于虚拟 IP (VIP) 的 QoS 策略的 ID。 |
vip_subnet_id |
body |
uuid |
虚拟 IP (VIP) 的子网 ID。 |
vip_sg_ids |
body |
数组 |
负载均衡器虚拟 IP (VIP) 端口的安全组 ID 列表。 版本 2.29 新增 |
vip_vnic_type |
body |
字符串 |
负载均衡器使用的 VIP vNIC 类型。可以是 版本 2.28 新增 |
响应示例¶
{
"loadbalancer": {
"description": "My favorite load balancer",
"admin_state_up": true,
"project_id": "e3cd678b11784734bc366148aa37580e",
"provisioning_status": "PENDING_CREATE",
"flavor_id": "",
"vip_subnet_id": "d4af86e1-0051-488c-b7a0-527f97490c9a",
"vip_address": "203.0.113.50",
"vip_network_id": "d0d217df-3958-4fbf-a3c2-8dad2908c709",
"vip_port_id": "b4ca07d1-a31e-43e2-891a-7d14f419f342",
"additional_vips": [],
"provider": "octavia",
"created_at": "2017-02-28T00:41:44",
"updated_at": "2017-02-28T00:43:30",
"id": "8a562351-f0fb-424c-a0af-513461424ea5",
"operating_status": "ONLINE",
"name": "best_load_balancer",
"vip_qos_policy_id": "ec4f78ca-8da8-4e99-8a1a-e3b94595a7a3",
"availability_zone": "my_az",
"tags": [],
"vip_vnic_type": "normal"
}
}
更新负载均衡器。
如果请求有效,服务将返回 Accepted (202) 响应代码。要确认更新,请检查负载均衡器的配置状态是否为 ACTIVE。如果状态为 PENDING_UPDATE,请使用 GET 操作轮询负载均衡器对象以查看更改。
此操作返回更新后的负载均衡器对象,其配置状态为 ACTIVE、PENDING_UPDATE 或 ERROR。
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
由于凭据无效,访问被拒绝。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
409 - Conflict |
此资源有一个正在进行的操作,与此请求冲突。 |
500 - 内部服务器错误 |
服务出现问题,导致无法满足请求。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
admin_state_up (可选) |
body |
布尔值 |
资源的管理员状态,即启用( |
description (可选) |
body |
字符串 |
资源的易于阅读的描述。 |
loadbalancer |
body |
对象 |
负载均衡器对象。 |
loadbalancer_id |
路径 |
uuid |
要查询的负载均衡器的 ID。 |
name (可选) |
body |
字符串 |
资源的易于阅读的名称。 |
tags (可选) |
body |
数组 |
分配给资源的简单字符串列表。 版本 2.5 新增 |
vip_qos_policy_id (可选) |
body |
uuid |
将应用于虚拟 IP (VIP) 的 QoS 策略的 ID。 |
请求示例¶
{
"loadbalancer": {
"description": "Temporarily disabled load balancer",
"admin_state_up": false,
"name": "disabled_load_balancer",
"vip_qos_policy_id": "ec4f78ca-8da8-4e99-8a1a-e3b94595a7a3",
"tags": ["updated_tag"]
}
}
Curl 示例¶
curl -X PUT -H "Content-Type: application/json" -H "X-Auth-Token: <token>" -d '{"loadbalancer": {"description": "Temporarily disabled load balancer", "admin_state_up": false, "name": "disabled_load_balancer", "vip_qos_policy_id": "ec4f78ca-8da8-4e99-8a1a-e3b94595a7a3", "tags": ["updated_tag"]}}' http://198.51.100.10:9876/v2/lbaas/loadbalancers/8b6fc468-07d5-4d8b-a0b9-695060e72c31
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
additional_vips (可选) |
body |
数组 |
一组定义“其他 VIP”的 JSON 对象列表。格式为 版本 2.26 新增 |
admin_state_up |
body |
布尔值 |
资源的管理员状态,即启用( |
created_at |
body |
字符串 |
资源创建的 UTC 日期和时间戳。 |
description |
body |
字符串 |
资源的易于阅读的描述。 |
flavor_id |
body |
uuid |
flavor 的 ID。 |
id |
body |
uuid |
负载均衡器的 ID。 |
listeners |
body |
数组 |
关联的监听器 ID(如果存在)。 |
loadbalancer |
body |
对象 |
负载均衡器对象。 |
name |
body |
字符串 |
资源的易于阅读的名称。 |
operating_status |
body |
字符串 |
资源的运行状态。请参阅 运行状态码。 |
pools |
body |
数组 |
关联的池 ID(如果存在)。 |
project_id |
body |
字符串 |
拥有此资源的项目的 ID。 |
provider |
body |
字符串 |
负载均衡器的提供商名称。 |
provisioning_status |
body |
字符串 |
资源的配置状态。请参阅 配置状态码。 |
tags |
body |
数组 |
分配给资源的简单字符串列表。 版本 2.5 新增 |
updated_at |
body |
字符串 |
上次更新资源的 UTC 日期和时间戳。 |
vip_address |
body |
字符串 |
虚拟 IP (VIP) 的 IP 地址。 |
vip_network_id |
body |
uuid |
虚拟 IP (VIP) 的网络 ID。 |
vip_port_id |
body |
uuid |
虚拟 IP (VIP) 端口的 ID。 |
vip_qos_policy_id |
body |
uuid |
将应用于虚拟 IP (VIP) 的 QoS 策略的 ID。 |
vip_subnet_id |
body |
uuid |
虚拟 IP (VIP) 的子网 ID。 |
vip_sg_ids |
body |
数组 |
负载均衡器虚拟 IP (VIP) 端口的安全组 ID 列表。 版本 2.29 新增 |
vip_vnic_type |
body |
字符串 |
负载均衡器使用的 VIP vNIC 类型。可以是 版本 2.28 新增 |
响应示例¶
{
"loadbalancer": {
"description": "Temporarily disabled load balancer",
"admin_state_up": false,
"project_id": "e3cd678b11784734bc366148aa37580e",
"provisioning_status": "PENDING_UPDATE",
"flavor_id": "",
"vip_subnet_id": "d4af86e1-0051-488c-b7a0-527f97490c9a",
"vip_address": "203.0.113.50",
"vip_network_id": "d0d217df-3958-4fbf-a3c2-8dad2908c709",
"vip_port_id": "b4ca07d1-a31e-43e2-891a-7d14f419f342",
"additional_vips": [],
"provider": "octavia",
"created_at": "2017-02-28T00:41:44",
"updated_at": "2017-02-28T00:43:30",
"id": "8b6fc468-07d5-4d8b-a0b9-695060e72c31",
"operating_status": "ONLINE",
"name": "disabled_load_balancer",
"vip_qos_policy_id": "ec4f78ca-8da8-4e99-8a1a-e3b94595a7a3",
"tags": ["updated_tag"],
"vip_vnic_type": "normal"
}
}
从项目中移除负载均衡器及其关联的配置。
可选参数 cascade,当定义为 true 时,将删除负载均衡器的所有子对象。
API 将立即清除任何和所有配置数据,具体取决于配置设置。您无法恢复它。
成功¶
代码 |
原因 |
|---|---|
204 - No Content |
请求已满足,但服务未返回任何内容。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
由于凭据无效,访问被拒绝。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
409 - Conflict |
此资源有一个正在进行的操作,与此请求冲突。 |
500 - 内部服务器错误 |
服务出现问题,导致无法满足请求。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
cascade (可选) |
查询 |
布尔值 |
如果 |
loadbalancer_id |
路径 |
uuid |
要查询的负载均衡器的 ID。 |
Curl 示例¶
curl -X DELETE -H "X-Auth-Token: <token>" http://198.51.100.10:9876/v2/lbaas/loadbalancers/4b9b652c-537a-44bf-bbe8-85a690625597
响应¶
成功的 DELETE 请求没有响应正文内容。
显示负载均衡器的当前统计信息。
此操作返回由 loadbalancer_id 标识的负载均衡器对象的统计信息。
如果您不是管理员用户,并且负载均衡器对象不属于您的项目,则服务将返回 HTTP Forbidden (403) 响应代码。
此操作不需要请求正文。
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
401 - 未授权 |
由于凭据无效,访问被拒绝。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
500 - 内部服务器错误 |
服务出现问题,导致无法满足请求。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
loadbalancer_id |
路径 |
uuid |
要查询的负载均衡器的 ID。 |
Curl 示例¶
curl -X GET -H "X-Auth-Token: <token>" http://198.51.100.10:9876/v2/lbaas/loadbalancers/4a13c573-623c-4d23-8a9c-581dc17ceb1f/stats
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
stats |
body |
对象 |
统计信息对象。 |
active_connections |
body |
整数 |
当前活动的连接数。 |
bytes_in |
body |
整数 |
接收到的总字节数。 |
bytes_out |
body |
整数 |
发送的总字节数。 |
request_errors |
body |
整数 |
无法完成的总请求数。 |
total_connections |
body |
整数 |
处理的总连接数。 |
响应示例¶
{
"stats": {
"bytes_in": 131342840,
"total_connections": 52378345,
"active_connections": 97258,
"bytes_out": 1549542372,
"request_errors": 0
}
}
显示负载均衡器的状态树。
此操作通过负载均衡器 ID 返回负载均衡器对象的状态树。
provisioning_status 是与资源生命周期相关的状态。有关状态码的描述,请参阅 配置状态码。
operating_status 是资源的观察状态。有关状态码的描述,请参阅 运行状态码。
如果您不是管理员用户,并且负载均衡器对象不属于您的项目,则服务将返回 HTTP Forbidden (403) 响应代码。
如果操作成功,则返回的元素是一个状态树,其中包含负载均衡器及其所有子项的配置和运行状态。
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
401 - 未授权 |
由于凭据无效,访问被拒绝。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
500 - 内部服务器错误 |
服务出现问题,导致无法满足请求。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
loadbalancer_id |
路径 |
uuid |
要查询的负载均衡器的 ID。 |
Curl 示例¶
curl -X GET -H "X-Auth-Token: <token>" http://198.51.100.10:9876/v2/lbaas/loadbalancers/bda6f032-80d3-414a-b395-e79c374e3929/status
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
动作 |
body |
字符串 |
与资源关联的操作。 |
address |
body |
字符串 |
资源的 IP 地址。 |
healthmonitor |
body |
对象 |
关联的健康监控状态对象。 |
id |
body |
uuid |
资源的 ID。 |
l7policies |
body |
数组 |
L7 策略状态对象列表。 |
l7rules |
body |
数组 |
L7 规则状态对象列表。 |
listeners |
body |
数组 |
监听器状态对象列表。 |
loadbalancer |
body |
对象 |
负载均衡器状态对象。 |
members |
body |
数组 |
成员状态对象列表。 |
name |
body |
字符串 |
资源的易于阅读的名称。 |
operating_status |
body |
字符串 |
资源的运行状态。请参阅 运行状态码。 |
pools |
body |
数组 |
池状态对象列表。 |
protocol_port |
body |
整数 |
资源的协议端口号。 |
provisioning_status |
body |
字符串 |
资源的配置状态。请参阅 配置状态码。 |
statuses |
body |
对象 |
负载均衡器对象的状态树包含其所有子项的配置和运行状态。 |
type |
body |
字符串 |
与资源关联的类型。 |
响应示例¶
{
"statuses": {
"loadbalancer": {
"name": "excellent_load_balancer",
"provisioning_status": "ACTIVE",
"listeners": [
{
"name": "HTTP_listener",
"provisioning_status": "ACTIVE",
"pools": [
{
"name": "HTTP_pool",
"provisioning_status": "ACTIVE",
"healthmonitor": {
"type": "HTTP",
"id": "0b608787-ea2d-48c7-89a1-8b8c24fa3b17",
"name": "HTTP_healthmonitor",
"provisioning_status": "ACTIVE"
},
"members": [
{
"name": "",
"provisioning_status": "ACTIVE",
"address": "192.0.2.20",
"protocol_port": 80,
"id": "3c6857f4-057a-405a-9134-bdeaa8796c8a",
"operating_status": "ERROR"
},
{
"name": "",
"provisioning_status": "ACTIVE",
"address": "192.0.2.21",
"protocol_port": 80,
"id": "f7495909-1706-4c91-83b4-641dab6962ac",
"operating_status": "ONLINE"
}
],
"id": "89a47f78-cf81-480b-ad74-bba4177eeb81",
"operating_status": "DEGRADED"
}
],
"l7policies": [],
"id": "78febaf6-1e63-47c6-af5f-7b5e23fd7094",
"operating_status": "DEGRADED"
},
{
"name": "redirect_listener",
"provisioning_status": "ACTIVE",
"pools": [],
"l7policies": [
{
"action": "REDIRECT_TO_URL",
"rules": [
{
"type": "PATH",
"id": "27f3007a-a1cb-4e17-9696-0e578d617715",
"provisioning_status": "ACTIVE"
}
],
"id": "2e8f3139-0673-43f9-aae4-c7a9460e3233",
"name": "redirect_policy",
"provisioning_status": "ACTIVE"
}
],
"id": "1341fbaf-ad4f-4cfe-a943-ad5e14e664cb",
"operating_status": "ONLINE"
}
],
"pools": [
{
"name": "HTTP_pool",
"provisioning_status": "ACTIVE",
"healthmonitor": {
"type": "HTTP",
"id": "0b608787-ea2d-48c7-89a1-8b8c24fa3b17",
"name": "HTTP_healthmonitor",
"provisioning_status": "ACTIVE"
},
"members": [
{
"name": "",
"provisioning_status": "ACTIVE",
"address": "192.0.2.20",
"protocol_port": 80,
"id": "3c6857f4-057a-405a-9134-bdeaa8796c8a",
"operating_status": "ERROR"
},
{
"name": "",
"provisioning_status": "ACTIVE",
"address": "192.0.2.21",
"protocol_port": 80,
"id": "f7495909-1706-4c91-83b4-641dab6962ac",
"operating_status": "ONLINE"
}
],
"id": "89a47f78-cf81-480b-ad74-bba4177eeb81",
"operating_status": "DEGRADED"
},
{
"name": "source_ip_pool",
"provisioning_status": "ACTIVE",
"healthmonitor": {},
"members": [],
"id": "8189d6a9-646e-4d23-b742-548dab991951",
"operating_status": "ONLINE"
}
],
"id": "84faceee-cb97-48d0-93df-9e41d40d4cb4",
"operating_status": "DEGRADED"
}
}
}
执行负载均衡器的故障转移。
此操作仅对具有负载均衡器管理员权限的用户可用。
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
错误¶
代码 |
原因 |
|---|---|
401 - 未授权 |
由于凭据无效,访问被拒绝。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
409 - Conflict |
此资源有一个正在进行的操作,与此请求冲突。 |
500 - 内部服务器错误 |
服务出现问题,导致无法满足请求。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
loadbalancer_id |
路径 |
uuid |
要查询的负载均衡器的 ID。 |
Curl 示例¶
curl -X PUT -H "X-Auth-Token: <token>" http://198.51.100.10:9876/v2/lbaas/loadbalancers/4a13c573-623c-4d23-8a9c-581dc17ceb1f/failover
Response¶
成功的故障转移请求没有响应正文内容。
监听器¶
列出项目的所有监听器。
使用 fields 查询参数来控制响应体中返回的字段。此外,您还可以使用查询字符串参数过滤结果。有关信息,请参阅 过滤和列选择。
管理员用户可以指定一个不同于自己的项目 ID 来列出其他项目的监听器。
列表可能为空。
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
由于凭据无效,访问被拒绝。 |
500 - 内部服务器错误 |
服务出现问题,导致无法满足请求。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
fields (可选) |
查询 |
字符串 |
您希望服务器返回的字段。如果未指定 |
project_id (可选) |
查询 |
字符串 |
要查询的项目 ID。 |
Curl 示例¶
curl -X GET -H "X-Auth-Token: <token>" http://198.51.100.10:9876/v2/lbaas/listeners?project_id=e3cd678b11784734bc366148aa37580e
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
admin_state_up |
body |
布尔值 |
资源的管理员状态,即启用( |
allowed_cidrs |
body |
数组 |
IPv4、IPv6 或两者的混合 CIDR 列表。 版本 2.12 中新增 |
alpn_protocols |
body |
数组 |
ALPN 协议列表。可用协议:http/1.0、http/1.1、h2 版本 2.20 新增 |
client_authentication |
body |
字符串 |
TLS 客户端身份验证模式。选项包括 版本 2.8 新增 |
client_ca_tls_container_ref |
body |
字符串 |
指向 密钥管理器服务中包含 PEM 格式客户端 CA 证书包的 Secret 的引用,用于 版本 2.8 新增 |
client_crl_container_ref |
body |
字符串 |
指向 密钥管理器服务中包含 PEM 格式 CA 吊销列表文件的 Secret 的 URI,用于 版本 2.8 新增 |
connection_limit |
body |
整数 |
此监听器允许的最大连接数。默认值为 -1,表示无限连接或由提供商驱动程序定义的默认值。 |
created_at |
body |
字符串 |
资源创建的 UTC 日期和时间戳。 |
default_pool_id |
body |
uuid |
如果 L7 策略不匹配,则监听器使用的池的 ID。池存在一些限制。请参阅 协议组合(监听器/池)。 |
default_tls_container_ref |
body |
字符串 |
指向 密钥管理器服务中包含 PKCS12 格式证书/密钥包的 Secret 的 URI,用于 |
description |
body |
字符串 |
资源的易于阅读的描述。 |
hsts_include_subdomains |
body |
bool |
定义是否应将 版本 2.27 新增 |
hsts_max_age |
body |
整数 |
Strict-Transport-Security HTTP 响应头的 版本 2.27 新增 |
hsts_preload |
body |
bool |
定义是否应将 版本 2.27 新增 |
id |
body |
uuid |
监听器的 ID。 |
insert_headers |
body |
对象 |
将在请求发送到后端 |
l7policies |
body |
数组 |
L7 策略 ID 列表。 |
listener |
body |
对象 |
监听器对象。 |
loadbalancers |
body |
数组 |
负载均衡器 ID 列表。 |
name |
body |
字符串 |
资源的易于阅读的名称。 |
operating_status |
body |
字符串 |
资源的运行状态。请参阅 运行状态码。 |
project_id |
body |
字符串 |
拥有此资源的项目的 ID。 |
协议 |
body |
字符串 |
资源的协议。可以是 |
protocol_port |
body |
整数 |
资源的协议端口号。 |
provisioning_status |
body |
字符串 |
资源的配置状态。请参阅 配置状态码。 |
sni_container_refs |
body |
数组 |
密钥管理器服务 Secret 的 URI 列表,包含 PKCS12 格式的证书/密钥包,用于 |
tags |
body |
数组 |
分配给资源的简单字符串列表。 版本 2.5 新增 |
timeout_client_data |
body |
整数 |
前端客户端不活动超时时间,以毫秒为单位。默认值:50000。 新增于版本 2.1 |
timeout_member_connect |
body |
整数 |
后端成员连接超时时间,以毫秒为单位。默认值:5000。 新增于版本 2.1 |
timeout_member_data |
body |
整数 |
后端成员不活动超时时间,以毫秒为单位。默认值:50000。 新增于版本 2.1 |
timeout_tcp_inspect |
body |
整数 |
等待进行内容检查的附加 TCP 数据包的时间,以毫秒为单位。默认值:0。 新增于版本 2.1 |
tls_ciphers |
body |
字符串 |
OpenSSL 格式的密码列表(冒号分隔)。请参阅 https://www.openssl.org/docs/man1.1.1/man1/ciphers.html 版本 2.15 新增 |
tls_versions |
body |
数组 |
TLS 协议版本列表。可用版本:SSLv3、TLSv1、TLSv1.1、TLSv1.2、TLSv1.3 版本 2.17 新增 |
updated_at |
body |
字符串 |
上次更新资源的 UTC 日期和时间戳。 |
响应示例¶
{
"listeners": [
{
"description": "A great TLS listener",
"admin_state_up": true,
"project_id": "e3cd678b11784734bc366148aa37580e",
"protocol": "TERMINATED_HTTPS",
"protocol_port": 443,
"provisioning_status": "ACTIVE",
"default_tls_container_ref": "http://198.51.100.10:9311/v1/containers/a570068c-d295-4780-91d4-3046a325db51",
"loadbalancers": [
{
"id": "607226db-27ef-4d41-ae89-f2a800e9c2db"
}
],
"insert_headers": {
"X-Forwarded-Port": "true",
"X-Forwarded-For": "true"
},
"created_at": "2017-02-28T00:42:44",
"updated_at": "2017-02-28T00:44:30",
"id": "023f2e34-7806-443b-bfae-16c324569a3d",
"operating_status": "ONLINE",
"default_pool_id": "ddb2b28f-89e9-45d3-a329-a359c3e39e4a",
"sni_container_refs": [
"http://198.51.100.10:9311/v1/containers/a570068c-d295-4780-91d4-3046a325db51",
"http://198.51.100.10:9311/v1/containers/aaebb31e-7761-4826-8cb4-2b829caca3ee"
],
"l7policies": [
{
"id": "58284ac9-673e-47ff-9dcb-09871a1956c4",
"id": "5e618272-339d-4a80-8d14-dbc093091bb1"
}
],
"name": "great_tls_listener",
"timeout_client_data": 50000,
"timeout_member_connect": 5000,
"timeout_member_data": 50000,
"timeout_tcp_inspect": 0,
"tags": [
"test_tag"
],
"client_ca_tls_container_ref": "http://198.51.100.10:9311/v1/containers/35649991-49f3-4625-81ce-2465fe8932e5",
"client_authentication": "NONE",
"client_crl_container_ref": "http://198.51.100.10:9311/v1/containers/e222b065-b93b-4e2a-9a02-804b7a118c3c",
"allowed_cidrs": [
"192.0.2.0/24",
"198.51.100.0/24"
],
"tls_ciphers": "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256",
"tls_versions": [
"TLSv1.2",
"TLSv1.3"
],
"alpn_protocols": [
"http/1.1",
"http/1.0"
],
"hsts_include_subdomains": true,
"hsts_max_age": 31536000,
"hsts_preload": true
}
]
}
为负载均衡器创建监听器。
监听器配置了负载均衡器要监听的端口和协议,以接收传入的请求。负载均衡器可以配置零个或多个监听器。
此操作通过使用您在请求对象中定义的配置来配置新的监听器。在 API 验证请求并开始配置过程后,API 将返回一个响应对象,其中包含唯一的 ID 和监听器配置的状态。
在响应中,监听器的 配置状态 为 ACTIVE、PENDING_CREATE 或 ERROR。
如果状态为 PENDING_CREATE,请发出 GET /v2/lbaas/listeners/{listener_id} 以查看配置操作的进度。当监听器状态更改为 ACTIVE 时,监听器将成功配置并可进行进一步配置。
如果 API 由于数据不足或数据无效而无法满足请求,则服务将返回 HTTP Bad Request (400) 响应代码,并在响应体中提供失败信息。验证错误要求您纠正错误并重新提交请求。
指定 project_id 已弃用。监听器将继承父负载均衡器的 project_id。
您可以通过在请求中指定其他元素或属性来在创建时配置监听器的所有已记录功能。
要创建监听器,父负载均衡器必须具有 ACTIVE 的配置状态。
成功¶
代码 |
原因 |
|---|---|
201 - 已创建 |
请求已完成,并创建了新资源。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
由于凭据无效,访问被拒绝。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
409 - Conflict |
此资源有一个正在进行的操作,与此请求冲突。 |
500 - 内部服务器错误 |
服务出现问题,导致无法满足请求。 |
503 - 服务不可用 |
服务现在无法处理请求。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
admin_state_up (可选) |
body |
布尔值 |
资源的管理员状态,即启用( |
allowed_cidrs (可选) |
body |
数组 |
IPv4、IPv6 或两者的混合 CIDR 列表。默认为全部允许。当提供 CIDR 列表时,默认更改为拒绝所有。 版本 2.12 中新增 |
alpn_protocols (可选) |
body |
数组 |
ALPN 协议列表。可用协议:http/1.0、http/1.1、h2 版本 2.20 新增 |
client_authentication (可选) |
body |
字符串 |
TLS 客户端身份验证模式。选项包括 版本 2.8 新增 |
client_ca_tls_container_ref (可选) |
body |
字符串 |
指向 密钥管理器服务中包含 PEM 格式客户端 CA 证书包的 Secret 的引用,用于 版本 2.8 新增 |
client_crl_container_ref (可选) |
body |
字符串 |
指向 密钥管理器服务中包含 PEM 格式 CA 吊销列表文件的 Secret 的 URI,用于 版本 2.8 新增 |
connection_limit (可选) |
body |
整数 |
此监听器允许的最大连接数。默认值为 -1,表示无限连接或由提供商驱动程序定义的默认值。 |
default_pool (可选) |
body |
对象 |
池对象。 |
default_pool_id (可选) |
body |
uuid |
如果 L7 策略不匹配,则监听器使用的池的 ID。池存在一些限制。请参阅 协议组合(监听器/池)。 |
default_tls_container_ref (可选) |
body |
字符串 |
指向 密钥管理器服务中包含 PKCS12 格式证书/密钥包的 Secret 的 URI,用于 |
description (可选) |
body |
字符串 |
资源的易于阅读的描述。 |
hsts_include_subdomains (可选) |
body |
bool |
定义是否应将 版本 2.27 新增 |
hsts_max_age (可选) |
body |
整数 |
Strict-Transport-Security HTTP 响应头的 版本 2.27 新增 |
hsts_preload (可选) |
body |
bool |
定义是否应将 版本 2.27 新增 |
insert_headers (可选) |
body |
对象 |
将在请求发送到后端 |
l7policies (可选) |
body |
数组 |
L7 策略对象列表。 |
listeners |
body |
对象 |
监听器对象。 |
loadbalancer_id |
body |
uuid |
负载均衡器的 ID。 |
name (可选) |
body |
字符串 |
资源的易于阅读的名称。 |
project_id (可选) |
body |
字符串 |
拥有此资源的项目的 ID。(已弃用) |
协议 |
body |
字符串 |
资源的协议。可以是 |
protocol_port |
body |
整数 |
资源的协议端口号。 |
sni_container_refs (可选) |
body |
数组 |
密钥管理器服务 Secret 的 URI 列表,包含 PKCS12 格式的证书/密钥包,用于 |
tags (可选) |
body |
数组 |
分配给资源的简单字符串列表。 版本 2.5 新增 |
timeout_client_data (可选) |
body |
整数 |
前端客户端不活动超时时间,以毫秒为单位。默认值:50000。 新增于版本 2.1 |
timeout_member_connect (可选) |
body |
整数 |
后端成员连接超时时间,以毫秒为单位。默认值:5000。 新增于版本 2.1 |
timeout_member_data (可选) |
body |
整数 |
后端成员不活动超时时间,以毫秒为单位。默认值:50000。 新增于版本 2.1 |
timeout_tcp_inspect (可选) |
body |
整数 |
等待进行内容检查的附加 TCP 数据包的时间,以毫秒为单位。默认值:0。 新增于版本 2.1 |
tls_ciphers (可选) |
body |
字符串 |
OpenSSL 格式的密码列表(冒号分隔)。请参阅 https://www.openssl.org/docs/man1.1.1/man1/ciphers.html 版本 2.15 新增 |
tls_versions (可选) |
body |
数组 |
TLS 协议版本列表。可用版本:SSLv3、TLSv1、TLSv1.1、TLSv1.2、TLSv1.3 版本 2.17 新增 |
支持的 HTTP 头部插入¶
注意
指定头部插入时,键和值都始终以字符串形式指定。
键 |
值 |
描述 |
|---|---|---|
X-Forwarded-For |
字符串 |
当为“ |
X-Forwarded-Port |
字符串 |
当为“ |
X-Forwarded-Proto |
字符串 |
当为“ |
X-SSL-Client-Verify |
字符串 |
当为“ |
X-SSL-Client-Has-Cert |
字符串 |
当为“ |
X-SSL-Client-DN |
字符串 |
当为“ |
X-SSL-Client-CN |
字符串 |
当为“ |
X-SSL-Issuer |
字符串 |
当为“ |
X-SSL-Client-SHA1 |
字符串 |
当为“ |
X-SSL-Client-Not-Before |
字符串 |
当为“ |
X-SSL-Client-Not-After |
字符串 |
当为“ |
请求示例¶
{
"listener": {
"protocol": "TERMINATED_HTTPS",
"description": "A great TLS listener",
"admin_state_up": true,
"connection_limit": 200,
"protocol_port": "443",
"loadbalancer_id": "607226db-27ef-4d41-ae89-f2a800e9c2db",
"name": "great_tls_listener",
"insert_headers": {
"X-Forwarded-For": "true",
"X-Forwarded-Port": "true"
},
"default_tls_container_ref": "http://198.51.100.10:9311/v1/containers/a570068c-d295-4780-91d4-3046a325db51",
"sni_container_refs": [
"http://198.51.100.10:9311/v1/containers/a570068c-d295-4780-91d4-3046a325db51",
"http://198.51.100.10:9311/v1/containers/aaebb31e-7761-4826-8cb4-2b829caca3ee"
],
"timeout_client_data": 50000,
"timeout_member_connect": 5000,
"timeout_member_data": 50000,
"timeout_tcp_inspect": 0,
"tags": ["test_tag"],
"client_ca_tls_container_ref": "http://198.51.100.10:9311/v1/containers/35649991-49f3-4625-81ce-2465fe8932e5",
"client_authentication": "MANDATORY",
"client_crl_container_ref": "http://198.51.100.10:9311/v1/containers/e222b065-b93b-4e2a-9a02-804b7a118c3c",
"allowed_cidrs": [
"192.0.2.0/24",
"198.51.100.0/24"
],
"tls_ciphers": "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256",
"tls_versions": ["TLSv1.2", "TLSv1.3"],
"alpn_protocols": ["http/1.1", "http/1.0"],
"hsts_include_subdomains": true,
"hsts_max_age": 31536000,
"hsts_preload": true
}
}
Curl 示例¶
curl -X POST -H "Content-Type: application/json" -H "X-Auth-Token: <token>" -d '{"listener": {"protocol": "TERMINATED_HTTPS", "description": "A great TLS listener", "admin_state_up": true, "connection_limit": 200, "protocol_port": "443", "loadbalancer_id": "607226db-27ef-4d41-ae89-f2a800e9c2db", "name": "great_tls_listener", "insert_headers": {"X-Forwarded-For": "true", "X-Forwarded-Port": "true"}, "default_tls_container_ref": "http://198.51.100.10:9311/v1/containers/a570068c-d295-4780-91d4-3046a325db51", "sni_container_refs": ["http://198.51.100.10:9311/v1/containers/a570068c-d295-4780-91d4-3046a325db51", "http://198.51.100.10:9311/v1/containers/aaebb31e-7761-4826-8cb4-2b829caca3ee"], "timeout_client_data": 50000, "timeout_member_connect": 5000, "timeout_member_data": 50000, "timeout_tcp_inspect": 0, "tags": ["test_tag"], "client_ca_tls_container_ref": "http://198.51.100.10:9311/v1/containers/35649991-49f3-4625-81ce-2465fe8932e5", "client_authentication": "MANDATORY", "client_crl_container_ref": "http://198.51.100.10:9311/v1/containers/e222b065-b93b-4e2a-9a02-804b7a118c3c", "allowed_cidrs": ["192.0.2.0/24", "198.51.100.0/24"], "tls_ciphers": "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256", "tls_versions": ["TLSv1.2", "TLSv1.3"], "alpn_protocols": ["http/1.1", "http/1.0"], "hsts_include_subdomains": true, "hsts_max_age": 31536000, "hsts_preload": true}}' http://198.51.100.10:9876/v2/lbaas/listeners
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
admin_state_up |
body |
布尔值 |
资源的管理员状态,即启用( |
allowed_cidrs |
body |
数组 |
IPv4、IPv6 或两者的混合 CIDR 列表。 版本 2.12 中新增 |
alpn_protocols |
body |
数组 |
ALPN 协议列表。可用协议:http/1.0、http/1.1、h2 版本 2.20 新增 |
client_authentication |
body |
字符串 |
TLS 客户端身份验证模式。选项包括 版本 2.8 新增 |
client_ca_tls_container_ref |
body |
字符串 |
指向 密钥管理器服务中包含 PEM 格式客户端 CA 证书包的 Secret 的引用,用于 版本 2.8 新增 |
client_crl_container_ref |
body |
字符串 |
指向 密钥管理器服务中包含 PEM 格式 CA 吊销列表文件的 Secret 的 URI,用于 版本 2.8 新增 |
connection_limit |
body |
整数 |
此监听器允许的最大连接数。默认值为 -1,表示无限连接或由提供商驱动程序定义的默认值。 |
created_at |
body |
字符串 |
资源创建的 UTC 日期和时间戳。 |
default_pool_id |
body |
uuid |
如果 L7 策略不匹配,则监听器使用的池的 ID。池存在一些限制。请参阅 协议组合(监听器/池)。 |
default_tls_container_ref |
body |
字符串 |
指向 密钥管理器服务中包含 PKCS12 格式证书/密钥包的 Secret 的 URI,用于 |
description |
body |
字符串 |
资源的易于阅读的描述。 |
hsts_include_subdomains |
body |
bool |
定义是否应将 版本 2.27 新增 |
hsts_max_age |
body |
整数 |
Strict-Transport-Security HTTP 响应头的 版本 2.27 新增 |
hsts_preload |
body |
bool |
定义是否应将 版本 2.27 新增 |
id |
body |
uuid |
监听器的 ID。 |
insert_headers |
body |
对象 |
将在请求发送到后端 |
l7policies |
body |
数组 |
L7 策略 ID 列表。 |
listener |
body |
对象 |
监听器对象。 |
loadbalancers |
body |
数组 |
负载均衡器 ID 列表。 |
name |
body |
字符串 |
资源的易于阅读的名称。 |
operating_status |
body |
字符串 |
资源的运行状态。请参阅 运行状态码。 |
project_id |
body |
字符串 |
拥有此资源的项目的 ID。 |
协议 |
body |
字符串 |
资源的协议。可以是 |
protocol_port |
body |
整数 |
资源的协议端口号。 |
provisioning_status |
body |
字符串 |
资源的配置状态。请参阅 配置状态码。 |
sni_container_refs |
body |
数组 |
密钥管理器服务 Secret 的 URI 列表,包含 PKCS12 格式的证书/密钥包,用于 |
tags |
body |
数组 |
分配给资源的简单字符串列表。 版本 2.5 新增 |
timeout_client_data |
body |
整数 |
前端客户端不活动超时时间,以毫秒为单位。默认值:50000。 新增于版本 2.1 |
timeout_member_connect |
body |
整数 |
后端成员连接超时时间,以毫秒为单位。默认值:5000。 新增于版本 2.1 |
timeout_member_data |
body |
整数 |
后端成员不活动超时时间,以毫秒为单位。默认值:50000。 新增于版本 2.1 |
timeout_tcp_inspect |
body |
整数 |
等待进行内容检查的附加 TCP 数据包的时间,以毫秒为单位。默认值:0。 新增于版本 2.1 |
tls_ciphers |
body |
字符串 |
OpenSSL 格式的密码列表(冒号分隔)。请参阅 https://www.openssl.org/docs/man1.1.1/man1/ciphers.html 版本 2.15 新增 |
tls_versions |
body |
数组 |
TLS 协议版本列表。可用版本:SSLv3、TLSv1、TLSv1.1、TLSv1.2、TLSv1.3 版本 2.17 新增 |
updated_at |
body |
字符串 |
上次更新资源的 UTC 日期和时间戳。 |
响应示例¶
{
"listener": {
"description": "A great TLS listener",
"admin_state_up": true,
"project_id": "e3cd678b11784734bc366148aa37580e",
"protocol": "TERMINATED_HTTPS",
"protocol_port": 443,
"provisioning_status": "PENDING_CREATE",
"default_tls_container_ref": "http://198.51.100.10:9311/v1/containers/a570068c-d295-4780-91d4-3046a325db51",
"loadbalancers": [
{
"id": "607226db-27ef-4d41-ae89-f2a800e9c2db"
}
],
"insert_headers": {
"X-Forwarded-Port": "true",
"X-Forwarded-For": "true"
},
"created_at": "2017-02-28T00:42:44",
"updated_at": "2017-02-28T00:44:30",
"id": "023f2e34-7806-443b-bfae-16c324569a3d",
"operating_status": "OFFLINE",
"default_pool_id": "ddb2b28f-89e9-45d3-a329-a359c3e39e4a",
"sni_container_refs": [
"http://198.51.100.10:9311/v1/containers/a570068c-d295-4780-91d4-3046a325db51",
"http://198.51.100.10:9311/v1/containers/aaebb31e-7761-4826-8cb4-2b829caca3ee"
],
"l7policies": [
{
"id": "5e618272-339d-4a80-8d14-dbc093091bb1"
}
],
"name": "great_tls_listener",
"timeout_client_data": 50000,
"timeout_member_connect": 5000,
"timeout_member_data": 50000,
"timeout_tcp_inspect": 0,
"tags": ["test_tag"],
"client_ca_tls_container_ref": "http://198.51.100.10:9311/v1/containers/35649991-49f3-4625-81ce-2465fe8932e5",
"client_authentication": "MANDATORY",
"client_crl_container_ref": "http://198.51.100.10:9311/v1/containers/e222b065-b93b-4e2a-9a02-804b7a118c3c",
"allowed_cidrs": [
"192.0.2.0/24",
"198.51.100.0/24"
],
"tls_ciphers": "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256",
"tls_versions": [
"TLSv1.2",
"TLSv1.3"
],
"alpn_protocols": [
"http/1.1",
"http/1.0"
],
"hsts_include_subdomains": true,
"hsts_max_age": 31536000,
"hsts_preload": true
}
}
显示监听器的详细信息。
如果您不是管理员用户,并且父负载均衡器不属于您的项目,则服务将返回 HTTP Forbidden (403) 响应代码。
此操作不需要请求正文。
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
401 - 未授权 |
由于凭据无效,访问被拒绝。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
500 - 内部服务器错误 |
服务出现问题,导致无法满足请求。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
fields (可选) |
查询 |
字符串 |
您希望服务器返回的字段。如果未指定 |
listener_id |
路径 |
uuid |
要查询的监听器的 ID。 |
Curl 示例¶
curl -X GET -H "X-Auth-Token: <token>" http://198.51.100.10:9876/v2/lbaas/listeners/023f2e34-7806-443b-bfae-16c324569a3d
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
admin_state_up |
body |
布尔值 |
资源的管理员状态,即启用( |
allowed_cidrs |
body |
数组 |
IPv4、IPv6 或两者的混合 CIDR 列表。 版本 2.12 中新增 |
alpn_protocols |
body |
数组 |
ALPN 协议列表。可用协议:http/1.0、http/1.1、h2 版本 2.20 新增 |
client_authentication |
body |
字符串 |
TLS 客户端身份验证模式。选项包括 版本 2.8 新增 |
client_ca_tls_container_ref |
body |
字符串 |
指向 密钥管理器服务中包含 PEM 格式客户端 CA 证书包的 Secret 的引用,用于 版本 2.8 新增 |
client_crl_container_ref |
body |
字符串 |
指向 密钥管理器服务中包含 PEM 格式 CA 吊销列表文件的 Secret 的 URI,用于 版本 2.8 新增 |
connection_limit |
body |
整数 |
此监听器允许的最大连接数。默认值为 -1,表示无限连接或由提供商驱动程序定义的默认值。 |
created_at |
body |
字符串 |
资源创建的 UTC 日期和时间戳。 |
default_pool_id |
body |
uuid |
如果 L7 策略不匹配,则监听器使用的池的 ID。池存在一些限制。请参阅 协议组合(监听器/池)。 |
default_tls_container_ref |
body |
字符串 |
指向 密钥管理器服务中包含 PKCS12 格式证书/密钥包的 Secret 的 URI,用于 |
description |
body |
字符串 |
资源的易于阅读的描述。 |
hsts_include_subdomains |
body |
bool |
定义是否应将 版本 2.27 新增 |
hsts_max_age |
body |
整数 |
Strict-Transport-Security HTTP 响应头的 版本 2.27 新增 |
hsts_preload |
body |
bool |
定义是否应将 版本 2.27 新增 |
id |
body |
uuid |
监听器的 ID。 |
insert_headers |
body |
对象 |
将在请求发送到后端 |
l7policies |
body |
数组 |
L7 策略 ID 列表。 |
listener |
body |
对象 |
监听器对象。 |
loadbalancers |
body |
数组 |
负载均衡器 ID 列表。 |
name |
body |
字符串 |
资源的易于阅读的名称。 |
operating_status |
body |
字符串 |
资源的运行状态。请参阅 运行状态码。 |
project_id |
body |
字符串 |
拥有此资源的项目的 ID。 |
协议 |
body |
字符串 |
资源的协议。可以是 |
protocol_port |
body |
整数 |
资源的协议端口号。 |
provisioning_status |
body |
字符串 |
资源的配置状态。请参阅 配置状态码。 |
sni_container_refs |
body |
数组 |
密钥管理器服务 Secret 的 URI 列表,包含 PKCS12 格式的证书/密钥包,用于 |
tags |
body |
数组 |
分配给资源的简单字符串列表。 版本 2.5 新增 |
timeout_client_data |
body |
整数 |
前端客户端不活动超时时间,以毫秒为单位。默认值:50000。 新增于版本 2.1 |
timeout_member_connect |
body |
整数 |
后端成员连接超时时间,以毫秒为单位。默认值:5000。 新增于版本 2.1 |
timeout_member_data |
body |
整数 |
后端成员不活动超时时间,以毫秒为单位。默认值:50000。 新增于版本 2.1 |
timeout_tcp_inspect |
body |
整数 |
等待进行内容检查的附加 TCP 数据包的时间,以毫秒为单位。默认值:0。 新增于版本 2.1 |
tls_ciphers |
body |
字符串 |
OpenSSL 格式的密码列表(冒号分隔)。请参阅 https://www.openssl.org/docs/man1.1.1/man1/ciphers.html 版本 2.15 新增 |
tls_versions |
body |
数组 |
TLS 协议版本列表。可用版本:SSLv3、TLSv1、TLSv1.1、TLSv1.2、TLSv1.3 版本 2.17 新增 |
updated_at |
body |
字符串 |
上次更新资源的 UTC 日期和时间戳。 |
响应示例¶
{
"listener": {
"description": "A great TLS listener",
"admin_state_up": true,
"project_id": "e3cd678b11784734bc366148aa37580e",
"protocol": "TERMINATED_HTTPS",
"protocol_port": 443,
"provisioning_status": "ACTIVE",
"default_tls_container_ref": "http://198.51.100.10:9311/v1/containers/a570068c-d295-4780-91d4-3046a325db51",
"loadbalancers": [
{
"id": "607226db-27ef-4d41-ae89-f2a800e9c2db"
}
],
"insert_headers": {
"X-Forwarded-Port": "true",
"X-Forwarded-For": "true"
},
"created_at": "2017-02-28T00:42:44",
"updated_at": "2017-02-28T00:44:30",
"id": "023f2e34-7806-443b-bfae-16c324569a3d",
"operating_status": "ONLINE",
"default_pool_id": "ddb2b28f-89e9-45d3-a329-a359c3e39e4a",
"sni_container_refs": [
"http://198.51.100.10:9311/v1/containers/a570068c-d295-4780-91d4-3046a325db51",
"http://198.51.100.10:9311/v1/containers/aaebb31e-7761-4826-8cb4-2b829caca3ee"
],
"l7policies": [
{
"id": "5e618272-339d-4a80-8d14-dbc093091bb1"
}
],
"name": "great_tls_listener",
"timeout_client_data": 50000,
"timeout_member_connect": 5000,
"timeout_member_data": 50000,
"timeout_tcp_inspect": 0,
"tags": ["test_tag"],
"client_ca_tls_container_ref": "http://198.51.100.10:9311/v1/containers/35649991-49f3-4625-81ce-2465fe8932e5",
"client_authentication": "MANDATORY",
"client_crl_container_ref": "http://198.51.100.10:9311/v1/containers/e222b065-b93b-4e2a-9a02-804b7a118c3c",
"allowed_cidrs": [
"192.0.2.0/24",
"198.51.100.0/24"
],
"tls_ciphers": "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256",
"tls_versions": [
"TLSv1.2",
"TLSv1.3"
],
"alpn_protocols": [
"http/1.1",
"http/1.0"
],
"hsts_include_subdomains": true,
"hsts_max_age": 31536000,
"hsts_preload": true
}
}
更新现有监听器。
如果请求有效,服务将返回 Accepted (202) 响应代码。要确认更新,请检查监听器的配置状态是否为 ACTIVE。如果状态为 PENDING_UPDATE,请使用 GET 操作轮询监听器对象以查看更改。
此操作返回更新后的监听器对象,其配置状态为 ACTIVE、PENDING_UPDATE 或 ERROR。
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
由于凭据无效,访问被拒绝。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
409 - Conflict |
此资源有一个正在进行的操作,与此请求冲突。 |
500 - 内部服务器错误 |
服务出现问题,导致无法满足请求。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
admin_state_up (可选) |
body |
布尔值 |
资源的管理员状态,即启用( |
allowed_cidrs (可选) |
body |
数组 |
IPv4、IPv6 或两者的混合 CIDR 列表。默认为全部允许。当提供 CIDR 列表时,默认更改为拒绝所有。 版本 2.12 中新增 |
alpn_protocols (可选) |
body |
数组 |
ALPN 协议列表。可用协议:http/1.0、http/1.1、h2 版本 2.20 新增 |
client_authentication (可选) |
body |
字符串 |
TLS 客户端身份验证模式。选项包括 版本 2.8 新增 |
client_ca_tls_container_ref (可选) |
body |
字符串 |
指向 密钥管理器服务中包含 PEM 格式客户端 CA 证书包的 Secret 的引用,用于 版本 2.8 新增 |
client_crl_container_ref (可选) |
body |
字符串 |
指向 密钥管理器服务中包含 PEM 格式 CA 吊销列表文件的 Secret 的 URI,用于 版本 2.8 新增 |
connection_limit (可选) |
body |
整数 |
此监听器允许的最大连接数。默认值为 -1,表示无限连接或由提供商驱动程序定义的默认值。 |
default_pool_id (可选) |
body |
uuid |
如果 L7 策略不匹配,则监听器使用的池的 ID。池存在一些限制。请参阅 协议组合(监听器/池)。 |
default_tls_container_ref (可选) |
body |
字符串 |
指向 密钥管理器服务中包含 PKCS12 格式证书/密钥包的 Secret 的 URI,用于 |
description (可选) |
body |
字符串 |
资源的易于阅读的描述。 |
hsts_include_subdomains (可选) |
body |
bool |
定义是否应将 版本 2.27 新增 |
hsts_max_age (可选) |
body |
整数 |
Strict-Transport-Security HTTP 响应头的 版本 2.27 新增 |
hsts_preload (可选) |
body |
bool |
定义是否应将 版本 2.27 新增 |
insert_headers (可选) |
body |
对象 |
将在请求发送到后端 |
listener_id |
路径 |
uuid |
要查询的监听器的 ID。 |
name (可选) |
body |
字符串 |
资源的易于阅读的名称。 |
sni_container_refs (可选) |
body |
数组 |
密钥管理器服务 Secret 的 URI 列表,包含 PKCS12 格式的证书/密钥包,用于 |
tags (可选) |
body |
数组 |
分配给资源的简单字符串列表。 版本 2.5 新增 |
timeout_client_data (可选) |
body |
整数 |
前端客户端不活动超时时间,以毫秒为单位。默认值:50000。 新增于版本 2.1 |
timeout_member_connect (可选) |
body |
整数 |
后端成员连接超时时间,以毫秒为单位。默认值:5000。 新增于版本 2.1 |
timeout_member_data (可选) |
body |
整数 |
后端成员不活动超时时间,以毫秒为单位。默认值:50000。 新增于版本 2.1 |
timeout_tcp_inspect (可选) |
body |
整数 |
等待进行内容检查的附加 TCP 数据包的时间,以毫秒为单位。默认值:0。 新增于版本 2.1 |
tls_ciphers (可选) |
body |
字符串 |
OpenSSL 格式的密码列表(冒号分隔)。请参阅 https://www.openssl.org/docs/man1.1.1/man1/ciphers.html 版本 2.15 新增 |
tls_versions (可选) |
body |
数组 |
TLS 协议版本列表。可用版本:SSLv3、TLSv1、TLSv1.1、TLSv1.2、TLSv1.3 版本 2.17 新增 |
请求示例¶
{
"listener": {
"description": "An updated great TLS listener",
"admin_state_up": true,
"connection_limit": 200,
"name": "great_updated_tls_listener",
"default_pool_id": "ddb2b28f-89e9-45d3-a329-a359c3e39e4a",
"insert_headers": {
"X-Forwarded-For": "false",
"X-Forwarded-Port": "true"
},
"default_tls_container_ref": "http://198.51.100.10:9311/v1/containers/a570068c-d295-4780-91d4-3046a325db51",
"sni_container_refs": [
"http://198.51.100.10:9311/v1/containers/a570068c-d295-4780-91d4-3046a325db51",
"http://198.51.100.10:9311/v1/containers/aaebb31e-7761-4826-8cb4-2b829caca3ee"
],
"timeout_client_data": 100000,
"timeout_member_connect": 1000,
"timeout_member_data": 100000,
"timeout_tcp_inspect": 5,
"tags": [
"updated_tag"
],
"client_ca_tls_container_ref": null,
"allowed_cidrs": [
"192.0.2.0/24",
"198.51.100.0/24"
],
"tls_ciphers": "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256",
"tls_versions": [
"TLSv1.2",
"TLSv1.3"
],
"alpn_protocols": [
"http/1.1",
"http/1.0"
],
"hsts_include_subdomains": true,
"hsts_max_age": 31536000,
"hsts_preload": true
}
}
Curl 示例¶
curl -X PUT -H "Content-Type: application/json" -H "X-Auth-Token: <token>" -d '{"listener": {"description": "An updated great TLS listener", "admin_state_up": true, "connection_limit": 200, "name": "great_updated_tls_listener", "insert_headers": {"X-Forwarded-For": "false", "X-Forwarded-Port": "true"}, "default_tls_container_ref": "http://198.51.100.10:9311/v1/containers/a570068c-d295-4780-91d4-3046a325db51", "sni_container_refs": ["http://198.51.100.10:9311/v1/containers/a570068c-d295-4780-91d4-3046a325db51", "http://198.51.100.10:9311/v1/containers/aaebb31e-7761-4826-8cb4-2b829caca3ee"], "timeout_client_data": 100000, "timeout_member_connect": 1000, "timeout_member_data": 100000, "timeout_tcp_inspect": 5, "tags": ["updated_tag"], "client_ca_tls_container_ref": null, "allowed_cidrs": ["192.0.2.0/24", "198.51.100.0/24"], "tls_ciphers": "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256", "tls_versions": ["TLSv1.2", "TLSv1.3"], "alpn_protocols": ["http/1.1", "http/1.0"], "hsts_include_subdomains": true, "hsts_max_age": 31536000, "hsts_preload": true}}' http://198.51.100.10:9876/v2/lbaas/listeners/023f2e34-7806-443b-bfae-16c324569a3d
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
admin_state_up |
body |
布尔值 |
资源的管理员状态,即启用( |
allowed_cidrs |
body |
数组 |
IPv4、IPv6 或两者的混合 CIDR 列表。 版本 2.12 中新增 |
alpn_protocols |
body |
数组 |
ALPN 协议列表。可用协议:http/1.0、http/1.1、h2 版本 2.20 新增 |
client_authentication |
body |
字符串 |
TLS 客户端身份验证模式。选项包括 版本 2.8 新增 |
client_ca_tls_container_ref |
body |
字符串 |
指向 密钥管理器服务中包含 PEM 格式客户端 CA 证书包的 Secret 的引用,用于 版本 2.8 新增 |
client_crl_container_ref |
body |
字符串 |
指向 密钥管理器服务中包含 PEM 格式 CA 吊销列表文件的 Secret 的 URI,用于 版本 2.8 新增 |
connection_limit |
body |
整数 |
此监听器允许的最大连接数。默认值为 -1,表示无限连接或由提供商驱动程序定义的默认值。 |
created_at |
body |
字符串 |
资源创建的 UTC 日期和时间戳。 |
default_pool_id |
body |
uuid |
如果 L7 策略不匹配,则监听器使用的池的 ID。池存在一些限制。请参阅 协议组合(监听器/池)。 |
default_tls_container_ref |
body |
字符串 |
指向 密钥管理器服务中包含 PKCS12 格式证书/密钥包的 Secret 的 URI,用于 |
description |
body |
字符串 |
资源的易于阅读的描述。 |
hsts_include_subdomains |
body |
bool |
定义是否应将 版本 2.27 新增 |
hsts_max_age |
body |
整数 |
Strict-Transport-Security HTTP 响应头的 版本 2.27 新增 |
hsts_preload |
body |
bool |
定义是否应将 版本 2.27 新增 |
id |
body |
uuid |
监听器的 ID。 |
insert_headers |
body |
对象 |
将在请求发送到后端 |
l7policies |
body |
数组 |
L7 策略 ID 列表。 |
listener |
body |
对象 |
监听器对象。 |
loadbalancers |
body |
数组 |
负载均衡器 ID 列表。 |
name |
body |
字符串 |
资源的易于阅读的名称。 |
operating_status |
body |
字符串 |
资源的运行状态。请参阅 运行状态码。 |
project_id |
body |
字符串 |
拥有此资源的项目的 ID。 |
协议 |
body |
字符串 |
资源的协议。可以是 |
protocol_port |
body |
整数 |
资源的协议端口号。 |
provisioning_status |
body |
字符串 |
资源的配置状态。请参阅 配置状态码。 |
sni_container_refs |
body |
数组 |
密钥管理器服务 Secret 的 URI 列表,包含 PKCS12 格式的证书/密钥包,用于 |
tags |
body |
数组 |
分配给资源的简单字符串列表。 版本 2.5 新增 |
timeout_client_data |
body |
整数 |
前端客户端不活动超时时间,以毫秒为单位。默认值:50000。 新增于版本 2.1 |
timeout_member_connect |
body |
整数 |
后端成员连接超时时间,以毫秒为单位。默认值:5000。 新增于版本 2.1 |
timeout_member_data |
body |
整数 |
后端成员不活动超时时间,以毫秒为单位。默认值:50000。 新增于版本 2.1 |
timeout_tcp_inspect |
body |
整数 |
等待进行内容检查的附加 TCP 数据包的时间,以毫秒为单位。默认值:0。 新增于版本 2.1 |
tls_ciphers |
body |
字符串 |
OpenSSL 格式的密码列表(冒号分隔)。请参阅 https://www.openssl.org/docs/man1.1.1/man1/ciphers.html 版本 2.15 新增 |
tls_versions |
body |
数组 |
TLS 协议版本列表。可用版本:SSLv3、TLSv1、TLSv1.1、TLSv1.2、TLSv1.3 版本 2.17 新增 |
updated_at |
body |
字符串 |
上次更新资源的 UTC 日期和时间戳。 |
响应示例¶
{
"listener": {
"description": "An updated great TLS listener",
"admin_state_up": true,
"project_id": "e3cd678b11784734bc366148aa37580e",
"protocol": "TERMINATED_HTTPS",
"protocol_port": 443,
"provisioning_status": "PENDING_UPDATE",
"default_tls_container_ref": "http://198.51.100.10:9311/v1/containers/a570068c-d295-4780-91d4-3046a325db51",
"loadbalancers": [
{
"id": "607226db-27ef-4d41-ae89-f2a800e9c2db"
}
],
"insert_headers": {
"X-Forwarded-Port": "true",
"X-Forwarded-For": "false"
},
"created_at": "2017-02-28T00:42:44",
"updated_at": "2017-02-28T00:44:30",
"id": "023f2e34-7806-443b-bfae-16c324569a3d",
"operating_status": "OFFLINE",
"default_pool_id": "ddb2b28f-89e9-45d3-a329-a359c3e39e4a",
"sni_container_refs": [
"http://198.51.100.10:9311/v1/containers/a570068c-d295-4780-91d4-3046a325db51",
"http://198.51.100.10:9311/v1/containers/aaebb31e-7761-4826-8cb4-2b829caca3ee"
],
"l7policies": [
{
"id": "5e618272-339d-4a80-8d14-dbc093091bb1"
}
],
"name": "great_updated_tls_listener",
"timeout_client_data": 100000,
"timeout_member_connect": 1000,
"timeout_member_data": 100000,
"timeout_tcp_inspect": 5,
"tags": ["updated_tag"],
"client_ca_tls_container_ref": null,
"client_authentication": "NONE",
"client_crl_container_ref": null,
"allowed_cidrs": [
"192.0.2.0/24",
"198.51.100.0/24"
],
"tls_ciphers": "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256",
"tls_versions": [
"TLSv1.2",
"TLSv1.3"
],
"alpn_protocols": [
"http/1.1",
"http/1.0"
],
"hsts_include_subdomains": true,
"hsts_max_age": 31536000,
"hsts_preload": true
}
}
从项目中移除监听器及其关联的配置。
API 将立即清除任何和所有配置数据,具体取决于配置设置。您无法恢复它。
成功¶
代码 |
原因 |
|---|---|
204 - No Content |
请求已满足,但服务未返回任何内容。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
由于凭据无效,访问被拒绝。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
409 - Conflict |
此资源有一个正在进行的操作,与此请求冲突。 |
500 - 内部服务器错误 |
服务出现问题,导致无法满足请求。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
listener_id |
路径 |
uuid |
要查询的监听器的 ID。 |
Curl 示例¶
curl -X DELETE -H "X-Auth-Token: <token>" http://198.51.100.10:9876/v2/lbaas/listeners/023f2e34-7806-443b-bfae-16c324569a3d
响应¶
成功的 DELETE 请求没有响应正文内容。
显示 Listener 的当前统计信息。
此操作返回由 listener_id 标识的监听器对象的统计信息。
如果您不是管理员用户,并且父负载均衡器不属于您的项目,则服务将返回 HTTP Forbidden (403) 响应代码。
此操作不需要请求正文。
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
401 - 未授权 |
由于凭据无效,访问被拒绝。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
500 - 内部服务器错误 |
服务出现问题,导致无法满足请求。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
listener_id |
路径 |
uuid |
要查询的监听器的 ID。 |
Curl 示例¶
curl -X GET -H "X-Auth-Token: <token>" http://198.51.100.10:9876/v2/lbaas/listeners/023f2e34-7806-443b-bfae-16c324569a3d/stats
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
stats |
body |
对象 |
统计信息对象。 |
active_connections |
body |
整数 |
当前活动的连接数。 |
bytes_in |
body |
整数 |
接收到的总字节数。 |
bytes_out |
body |
整数 |
发送的总字节数。 |
request_errors |
body |
整数 |
无法完成的总请求数。 |
total_connections |
body |
整数 |
处理的总连接数。 |
响应示例¶
{
"stats": {
"bytes_in": 65671420,
"total_connections": 26189172,
"active_connections": 48629,
"bytes_out": 774771186,
"request_errors": 0
}
}
池¶
列出项目的所有池。
使用 fields 查询参数来控制响应体中返回的字段。此外,您还可以使用查询字符串参数过滤结果。有关信息,请参阅 过滤和列选择。
管理员用户可以指定一个不同于自己的项目 ID 来列出其他项目的池。
列表可能为空。
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
由于凭据无效,访问被拒绝。 |
500 - 内部服务器错误 |
服务出现问题,导致无法满足请求。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
fields (可选) |
查询 |
字符串 |
您希望服务器返回的字段。如果未指定 |
project_id (可选) |
查询 |
字符串 |
要查询的项目 ID。 |
Curl 示例¶
curl -X GET -H "X-Auth-Token: <token>" http://198.51.100.10:9876/v2/lbaas/pools?project_id=e3cd678b11784734bc366148aa37580e
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
admin_state_up |
body |
布尔值 |
资源的管理员状态,即启用( |
alpn_protocols |
body |
数组 |
ALPN 协议列表。可用协议:http/1.0、http/1.1、h2 版本 2.24 新增 |
ca_tls_container_ref |
body |
字符串 |
指向 密钥管理器服务中包含 PEM 格式 CA 证书包的 Secret 的引用,用于 版本 2.8 新增 |
created_at |
body |
字符串 |
资源创建的 UTC 日期和时间戳。 |
crl_container_ref |
body |
字符串 |
指向 密钥管理器服务中包含 PEM 格式 CA 吊销列表文件的 Secret 的引用,用于 |
description |
body |
字符串 |
资源的易于阅读的描述。 |
healthmonitor_id |
body |
uuid |
关联的健康监控 ID。 |
id |
body |
uuid |
池的 ID。 |
lb_algorithm |
body |
字符串 |
池的负载均衡算法。可以是 |
listeners |
body |
数组 |
监听器 ID 列表。 |
loadbalancers |
body |
数组 |
负载均衡器 ID 列表。 |
members |
body |
数组 |
成员 ID 列表。 |
name |
body |
字符串 |
资源的易于阅读的名称。 |
operating_status |
body |
字符串 |
资源的运行状态。请参阅 运行状态码。 |
project_id |
body |
字符串 |
拥有此资源的项目的 ID。 |
协议 |
body |
字符串 |
资源的协议。可以是 |
provisioning_status |
body |
字符串 |
资源的配置状态。请参阅 配置状态码。 |
session_persistence |
body |
对象 |
一个 JSON 对象,指定池的会话持久性,或者 |
tags |
body |
数组 |
分配给资源的简单字符串列表。 版本 2.5 新增 |
tls_ciphers |
body |
字符串 |
OpenSSL 格式的密码列表(冒号分隔)。请参阅 https://www.openssl.org/docs/man1.1.1/man1/ciphers.html 版本 2.15 新增 |
tls_container_ref |
body |
字符串 |
指向 密钥管理器服务中包含 PKCS12 格式证书/密钥包的 Secret 的引用,用于 版本 2.8 新增 |
tls_enabled |
body |
布尔值 |
当 版本 2.8 新增 |
tls_versions |
body |
数组 |
TLS 协议版本列表。可用版本:SSLv3、TLSv1、TLSv1.1、TLSv1.2、TLSv1.3 版本 2.17 新增 |
updated_at |
body |
字符串 |
上次更新资源的 UTC 日期和时间戳。 |
响应示例¶
{
"pools": [
{
"lb_algorithm": "ROUND_ROBIN",
"protocol": "HTTP",
"description": "My round robin pool",
"admin_state_up": true,
"loadbalancers": [
{
"id": "607226db-27ef-4d41-ae89-f2a800e9c2db"
}
],
"created_at": "2017-04-13T18:14:44",
"provisioning_status": "ACTIVE",
"updated_at": "2017-04-13T23:08:12",
"session_persistence": {
"cookie_name": null,
"type": "SOURCE_IP"
},
"listeners": [
{
"id": "023f2e34-7806-443b-bfae-16c324569a3d"
}
],
"members": [
{
"id": "5bc73753-348f-4b5a-8f9c-10bd7b30dc35",
"id": "692e8358-f8fd-4b92-bbca-6e4b97c75571"
}
],
"healthmonitor_id": null,
"project_id": "e3cd678b11784734bc366148aa37580e",
"id": "ddb2b28f-89e9-45d3-a329-a359c3e39e4a",
"operating_status": "ONLINE",
"name": "round_robin_pool",
"tags": ["test_tag"],
"tls_container_ref": "http://198.51.100.10:9311/v1/containers/4073846f-1d5e-42e1-a4cf-a7046419d0e6",
"ca_tls_container_ref": "http://198.51.100.10:9311/v1/containers/5f0d5540-fae6-4646-85d6-8a84883807fb",
"crl_container_ref": "http://198.51.100.10:9311/v1/containers/6faf0a01-6892-454c-aaac-650282820c0b",
"tls_enabled": true,
"tls_ciphers": "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256",
"tls_versions": ["TLSv1.2", "TLSv1.3"],
"alpn_protocols": ["http/1.1", "http/1.0"]
}
]
}
为负载均衡器创建池。
池定义了请求应如何跨后端成员服务器进行负载均衡。
此操作通过使用您在请求对象中定义的配置来配置池。在 API 验证请求并开始配置过程后,API 将返回一个响应对象,其中包含唯一的 ID。
在响应中,池 provisioning status 为 ACTIVE、PENDING_CREATE 或 ERROR。
如果状态为 PENDING_CREATE,请发出 GET 请求 /v2/lbaas/pools/{pool_id} 来查看预配操作的进度。当池状态更改为 ACTIVE 时,表示池已成功预配并可进行进一步配置。
最低限度,您必须指定以下池属性
protocol此池及其成员侦听的协议。有效值为HTTP、HTTPS、PROXY、PROXYV2、SCTP、TCP或UDP。lb_algorithm将流量分发到池成员的负载均衡器算法,例如ROUND_ROBIN、LEAST_CONNECTIONS、SOURCE_IP和SOURCE_IP_PORT。负载均衡器提供商必须支持此算法。listener_id监听器(listener)的 ID,在此监听器中此池将成为默认池。每个监听器只有一个默认池。—或—
loadbalancer_id负载均衡器(load balancer)的 ID,在此负载均衡器下创建此池。每个负载均衡器可以关联零个或多个池。这些池可用于 L7 策略。
注意
必须指定 listener_id 或 loadbalancer_id。
省略某些属性时,它们将接收默认值
admin_state_up默认为true。name默认为空字符串。description默认为空字符串。
如果 API 由于数据不足或数据无效而无法满足请求,则服务将返回 HTTP Bad Request (400) 响应代码,并在响应体中提供失败信息。验证错误要求您纠正错误并重新提交请求。
指定 project_id 已弃用。池将继承父负载均衡器的 project_id。
通过在请求中指定附加元素或属性,您可以在创建时配置池的所有文档化功能。
要创建池,父负载均衡器必须具有 ACTIVE 预配状态。
SOURCE_IP_PORT 算法可在 2.13 版本中使用。
成功¶
代码 |
原因 |
|---|---|
201 - 已创建 |
请求已完成,并创建了新资源。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
由于凭据无效,访问被拒绝。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
409 - Conflict |
此资源有一个正在进行的操作,与此请求冲突。 |
500 - 内部服务器错误 |
服务出现问题,导致无法满足请求。 |
503 - 服务不可用 |
服务现在无法处理请求。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
admin_state_up (可选) |
body |
布尔值 |
资源的管理员状态,即启用( |
alpn_protocols (可选) |
body |
数组 |
ALPN 协议列表。可用协议:http/1.0、http/1.1、h2 版本 2.24 新增 |
ca_tls_container_ref (可选) |
body |
字符串 |
指向 密钥管理器服务中包含 PEM 格式 CA 证书包的 Secret 的引用,用于 版本 2.8 新增 |
crl_container_ref (可选) |
body |
字符串 |
指向 密钥管理器服务中包含 PEM 格式 CA 吊销列表文件的 Secret 的引用,用于 |
description (可选) |
body |
字符串 |
资源的易于阅读的描述。 |
lb_algorithm |
body |
字符串 |
池的负载均衡算法。可以是 |
listener_id (可选) |
body |
uuid |
池的监听器 ID。必须指定 |
loadbalancer_id (可选) |
body |
uuid |
池的负载均衡器 ID。必须指定 |
name (可选) |
body |
字符串 |
资源的易于阅读的名称。 |
project_id (可选) |
body |
字符串 |
拥有此资源的项目的 ID。(已弃用) |
协议 |
body |
字符串 |
资源的协议。可以是 |
session_persistence (可选) |
body |
对象 |
一个 JSON 对象,指定池的会话持久性,或者 |
tags (可选) |
body |
数组 |
分配给资源的简单字符串列表。 版本 2.5 新增 |
tls_enabled (可选) |
body |
布尔值 |
当 版本 2.8 新增 |
tls_ciphers (可选) |
body |
字符串 |
OpenSSL 格式的密码列表(冒号分隔)。请参阅 https://www.openssl.org/docs/man1.1.1/man1/ciphers.html 版本 2.15 新增 |
tls_container_ref (可选) |
body |
字符串 |
指向 密钥管理器服务中包含 PKCS12 格式证书/密钥包的 Secret 的引用,用于 版本 2.8 新增 |
tls_versions (可选) |
body |
数组 |
TLS 协议版本列表。可用版本:SSLv3、TLSv1、TLSv1.1、TLSv1.2、TLSv1.3 版本 2.17 新增 |
池会话持久性¶
池会话持久性指示负载均衡器尝试将来自客户端的后续请求发送到与初始请求相同的后端成员。
当池没有会话持久性时,会话持久性对象为 null。
Octavia 目前支持三种会话持久性方法
方法 |
描述 |
|---|---|
|
使用指定的 |
|
负载均衡器将生成一个 cookie,并将其插入到响应中。此 cookie 将用于将后续请求发送到同一成员。 |
|
请求的源 IP 地址将被哈希以将后续请求发送到同一成员。 |
池会话持久性对象¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
type |
body |
字符串 |
池的会话持久性类型。可以是 |
cookie_name (可选) |
body |
字符串 |
用于会话持久性的 cookie 名称。仅适用于 |
persistence_timeout (可选) |
body |
整数 |
SCTP 或 UDP 流在重新调度到不同成员后可能发生的超时(以秒为单位)。目前仅适用于具有 SOURCE_IP 会话持久性的 SCTP 或 UDP 池。默认值为 360。 版本 2.2 中新增 |
persistence_granularity (可选) |
body |
字符串 |
用于确定 SCTP 或 UDP 会话持久性的网络掩码。目前仅对具有 SOURCE_IP 会话持久性的 SCTP 或 UDP 池有效。默认网络掩码为 255.255.255.255,表示按客户端的完整 IP。 版本 2.2 中新增 |
池会话持久性对象示例¶
{"cookie_name": "my_app_cookie", "type": "APP_COOKIE"}
请求示例¶
{
"pool": {
"lb_algorithm": "ROUND_ROBIN",
"protocol": "HTTP",
"description": "Super Round Robin Pool",
"admin_state_up": true,
"session_persistence": {
"cookie_name": "ChocolateChip",
"type": "APP_COOKIE"
},
"listener_id": "023f2e34-7806-443b-bfae-16c324569a3d",
"name": "super-pool",
"tags": ["test_tag"],
"tls_container_ref": "http://198.51.100.10:9311/v1/containers/4073846f-1d5e-42e1-a4cf-a7046419d0e6",
"ca_tls_container_ref": "http://198.51.100.10:9311/v1/containers/5f0d5540-fae6-4646-85d6-8a84883807fb",
"crl_container_ref": "http://198.51.100.10:9311/v1/containers/6faf0a01-6892-454c-aaac-650282820c0b",
"tls_enabled": true,
"tls_ciphers": "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256",
"tls_versions": ["TLSv1.2", "TLSv1.3"],
"alpn_protocols": ["http/1.1", "http/1.0"]
}
}
Curl 示例¶
curl -X POST -H "Content-Type: application/json" -H "X-Auth-Token: <token>" -d '{"pool":{"lb_algorithm":"ROUND_ROBIN","protocol":"HTTP","description":"Super Round Robin Pool","admin_state_up":true,"session_persistence":{"cookie_name":"ChocolateChip","type":"APP_COOKIE"},"listener_id":"023f2e34-7806-443b-bfae-16c324569a3d","name":"super-pool","tags":["test_tag"],"tls_container_ref":"http://198.51.100.10:9311/v1/containers/4073846f-1d5e-42e1-a4cf-a7046419d0e6","ca_tls_container_ref":"http://198.51.100.10:9311/v1/containers/5f0d5540-fae6-4646-85d6-8a84883807fb","crl_container_ref":"http://198.51.100.10:9311/v1/containers/6faf0a01-6892-454c-aaac-650282820c0b","tls_enabled":true,"tls_ciphers":"ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256", "tls_versions": ["TLSv1.2", "TLSv1.3"], "alpn_protocols": ["http/1.1", "http/1.0"]}}' http://198.51.100.10:9876/v2/lbaas/pools
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
admin_state_up |
body |
布尔值 |
资源的管理员状态,即启用( |
alpn_protocols |
body |
数组 |
ALPN 协议列表。可用协议:http/1.0、http/1.1、h2 版本 2.24 新增 |
ca_tls_container_ref |
body |
字符串 |
指向 密钥管理器服务中包含 PEM 格式 CA 证书包的 Secret 的引用,用于 版本 2.8 新增 |
created_at |
body |
字符串 |
资源创建的 UTC 日期和时间戳。 |
crl_container_ref |
body |
字符串 |
指向 密钥管理器服务中包含 PEM 格式 CA 吊销列表文件的 Secret 的引用,用于 |
description |
body |
字符串 |
资源的易于阅读的描述。 |
healthmonitor_id |
body |
uuid |
关联的健康监控 ID。 |
id |
body |
uuid |
池的 ID。 |
lb_algorithm |
body |
字符串 |
池的负载均衡算法。可以是 |
listeners |
body |
数组 |
监听器 ID 列表。 |
loadbalancers |
body |
数组 |
负载均衡器 ID 列表。 |
members |
body |
数组 |
成员 ID 列表。 |
name |
body |
字符串 |
资源的易于阅读的名称。 |
operating_status |
body |
字符串 |
资源的运行状态。请参阅 运行状态码。 |
project_id |
body |
字符串 |
拥有此资源的项目的 ID。 |
协议 |
body |
字符串 |
资源的协议。可以是 |
provisioning_status |
body |
字符串 |
资源的配置状态。请参阅 配置状态码。 |
session_persistence |
body |
对象 |
一个 JSON 对象,指定池的会话持久性,或者 |
tags |
body |
数组 |
分配给资源的简单字符串列表。 版本 2.5 新增 |
tls_enabled |
body |
布尔值 |
当 版本 2.8 新增 |
tls_ciphers |
body |
字符串 |
OpenSSL 格式的密码列表(冒号分隔)。请参阅 https://www.openssl.org/docs/man1.1.1/man1/ciphers.html 版本 2.15 新增 |
tls_container_ref |
body |
字符串 |
指向 密钥管理器服务中包含 PKCS12 格式证书/密钥包的 Secret 的引用,用于 版本 2.8 新增 |
tls_versions |
body |
数组 |
TLS 协议版本列表。可用版本:SSLv3、TLSv1、TLSv1.1、TLSv1.2、TLSv1.3 版本 2.17 新增 |
updated_at |
body |
字符串 |
上次更新资源的 UTC 日期和时间戳。 |
响应示例¶
{
"pool": {
"lb_algorithm": "ROUND_ROBIN",
"protocol": "HTTP",
"description": "Super Round Robin Pool",
"admin_state_up": true,
"loadbalancers": [
{
"id": "607226db-27ef-4d41-ae89-f2a800e9c2db"
}
],
"created_at": "2017-05-10T18:14:44",
"provisioning_status": "ACTIVE",
"updated_at": "2017-05-10T23:08:12",
"session_persistence": {
"cookie_name": "ChocolateChip",
"type": "APP_COOKIE"
},
"listeners": [
{
"id": "023f2e34-7806-443b-bfae-16c324569a3d"
}
],
"members": [],
"healthmonitor_id": null,
"project_id": "e3cd678b11784734bc366148aa37580e",
"id": "4029d267-3983-4224-a3d0-afb3fe16a2cd",
"operating_status": "ONLINE",
"name": "super-pool",
"tags": ["test_tag"],
"tls_container_ref": "http://198.51.100.10:9311/v1/containers/4073846f-1d5e-42e1-a4cf-a7046419d0e6",
"ca_tls_container_ref": "http://198.51.100.10:9311/v1/containers/5f0d5540-fae6-4646-85d6-8a84883807fb",
"crl_container_ref": "http://198.51.100.10:9311/v1/containers/6faf0a01-6892-454c-aaac-650282820c0b",
"tls_enabled": true,
"tls_ciphers": "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256",
"tls_versions": ["TLSv1.2", "TLSv1.3"],
"alpn_protocols": ["http/1.1", "http/1.0"]
}
}
显示池的详细信息。
如果您不是管理员用户,并且父负载均衡器不属于您的项目,则服务将返回 HTTP Forbidden (403) 响应代码。
此操作不需要请求正文。
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
401 - 未授权 |
由于凭据无效,访问被拒绝。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
500 - 内部服务器错误 |
服务出现问题,导致无法满足请求。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
fields (可选) |
查询 |
字符串 |
您希望服务器返回的字段。如果未指定 |
pool_id |
路径 |
uuid |
要查询的池的 ID。 |
Curl 示例¶
curl -X GET -H "X-Auth-Token: <token>" http://198.51.100.10:9876/v2/lbaas/pools/24a43e68-36de-45f6-89cf-c03df583131d
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
admin_state_up |
body |
布尔值 |
资源的管理员状态,即启用( |
alpn_protocols |
body |
数组 |
ALPN 协议列表。可用协议:http/1.0、http/1.1、h2 版本 2.24 新增 |
ca_tls_container_ref |
body |
字符串 |
指向 密钥管理器服务中包含 PEM 格式 CA 证书包的 Secret 的引用,用于 版本 2.8 新增 |
created_at |
body |
字符串 |
资源创建的 UTC 日期和时间戳。 |
crl_container_ref |
body |
字符串 |
指向 密钥管理器服务中包含 PEM 格式 CA 吊销列表文件的 Secret 的引用,用于 |
description |
body |
字符串 |
资源的易于阅读的描述。 |
healthmonitor_id |
body |
uuid |
关联的健康监控 ID。 |
id |
body |
uuid |
池的 ID。 |
lb_algorithm |
body |
字符串 |
池的负载均衡算法。可以是 |
listeners |
body |
数组 |
监听器 ID 列表。 |
loadbalancers |
body |
数组 |
负载均衡器 ID 列表。 |
members |
body |
数组 |
成员 ID 列表。 |
name |
body |
字符串 |
资源的易于阅读的名称。 |
operating_status |
body |
字符串 |
资源的运行状态。请参阅 运行状态码。 |
project_id |
body |
字符串 |
拥有此资源的项目的 ID。 |
协议 |
body |
字符串 |
资源的协议。可以是 |
provisioning_status |
body |
字符串 |
资源的配置状态。请参阅 配置状态码。 |
session_persistence |
body |
对象 |
一个 JSON 对象,指定池的会话持久性,或者 |
tags |
body |
数组 |
分配给资源的简单字符串列表。 版本 2.5 新增 |
tls_enabled |
body |
布尔值 |
当 版本 2.8 新增 |
tls_ciphers |
body |
字符串 |
OpenSSL 格式的密码列表(冒号分隔)。请参阅 https://www.openssl.org/docs/man1.1.1/man1/ciphers.html 版本 2.15 新增 |
tls_container_ref |
body |
字符串 |
指向 密钥管理器服务中包含 PKCS12 格式证书/密钥包的 Secret 的引用,用于 版本 2.8 新增 |
tls_versions |
body |
数组 |
TLS 协议版本列表。可用版本:SSLv3、TLSv1、TLSv1.1、TLSv1.2、TLSv1.3 版本 2.17 新增 |
updated_at |
body |
字符串 |
上次更新资源的 UTC 日期和时间戳。 |
响应示例¶
{
"pool": {
"lb_algorithm": "ROUND_ROBIN",
"protocol": "HTTP",
"description": "Super Round Robin Pool",
"admin_state_up": true,
"loadbalancers": [
{
"id": "607226db-27ef-4d41-ae89-f2a800e9c2db"
}
],
"created_at": "2017-05-10T18:14:44",
"provisioning_status": "ACTIVE",
"updated_at": "2017-05-10T23:08:12",
"session_persistence": {
"cookie_name": "ChocolateChip",
"type": "APP_COOKIE"
},
"listeners": [
{
"id": "023f2e34-7806-443b-bfae-16c324569a3d"
}
],
"members": [],
"healthmonitor_id": null,
"project_id": "e3cd678b11784734bc366148aa37580e",
"id": "4029d267-3983-4224-a3d0-afb3fe16a2cd",
"operating_status": "ONLINE",
"name": "super-pool",
"tags": ["test_tag"],
"tls_container_ref": "http://198.51.100.10:9311/v1/containers/4073846f-1d5e-42e1-a4cf-a7046419d0e6",
"ca_tls_container_ref": "http://198.51.100.10:9311/v1/containers/5f0d5540-fae6-4646-85d6-8a84883807fb",
"crl_container_ref": "http://198.51.100.10:9311/v1/containers/6faf0a01-6892-454c-aaac-650282820c0b",
"tls_enabled": false,
"tls_ciphers": "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256",
"tls_versions": ["TLSv1.2", "TLSv1.3"],
"alpn_protocols": ["http/1.1", "http/1.0"]
}
}
更新现有池。
如果请求有效,服务将返回 Accepted (202) 响应代码。要确认更新,请检查池的预配状态是否为 ACTIVE。如果状态为 PENDING_UPDATE,请使用 GET 操作轮询池对象以了解更改。
此操作将返回更新后的池对象,其预配状态为 ACTIVE、PENDING_UPDATE 或 ERROR。
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
由于凭据无效,访问被拒绝。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
409 - Conflict |
此资源有一个正在进行的操作,与此请求冲突。 |
500 - 内部服务器错误 |
服务出现问题,导致无法满足请求。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
admin_state_up (可选) |
body |
布尔值 |
资源的管理员状态,即启用( |
alpn_protocols (可选) |
body |
数组 |
ALPN 协议列表。可用协议:http/1.0、http/1.1、h2 版本 2.24 新增 |
ca_tls_container_ref (可选) |
body |
字符串 |
指向 密钥管理器服务中包含 PEM 格式 CA 证书包的 Secret 的引用,用于 版本 2.8 新增 |
crl_container_ref (可选) |
body |
字符串 |
指向 密钥管理器服务中包含 PEM 格式 CA 吊销列表文件的 Secret 的引用,用于 |
description (可选) |
body |
字符串 |
资源的易于阅读的描述。 |
lb_algorithm (可选) |
body |
字符串 |
池的负载均衡算法。可以是 |
name (可选) |
body |
字符串 |
资源的易于阅读的名称。 |
pool_id |
路径 |
uuid |
要查询的池的 ID。 |
session_persistence (可选) |
body |
对象 |
一个 JSON 对象,指定池的会话持久性,或者 |
tags (可选) |
body |
数组 |
分配给资源的简单字符串列表。 版本 2.5 新增 |
tls_enabled (可选) |
body |
布尔值 |
当 版本 2.8 新增 |
tls_ciphers (可选) |
body |
字符串 |
OpenSSL 格式的密码列表(冒号分隔)。请参阅 https://www.openssl.org/docs/man1.1.1/man1/ciphers.html 版本 2.15 新增 |
tls_container_ref (可选) |
body |
字符串 |
指向 密钥管理器服务中包含 PKCS12 格式证书/密钥包的 Secret 的引用,用于 版本 2.8 新增 |
tls_versions (可选) |
body |
数组 |
TLS 协议版本列表。可用版本:SSLv3、TLSv1、TLSv1.1、TLSv1.2、TLSv1.3 版本 2.17 新增 |
请求示例¶
{
"pool": {
"lb_algorithm": "LEAST_CONNECTIONS",
"session_persistence": {
"type": "SOURCE_IP"
},
"description": "Super Least Connections Pool",
"name": "super-least-conn-pool",
"tags": ["updated_tag"],
"tls_container_ref": "http://198.51.100.10:9311/v1/containers/c1cd501d-3cf9-4873-a11b-a74bebcde929",
"ca_tls_container_ref": null,
"crl_container_ref": null,
"tls_enabled": false,
"tls_ciphers": "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256",
"tls_versions": ["TLSv1.2", "TLSv1.3"],
"alpn_protocols": ["http/1.1", "http/1.0"]
}
}
Curl 示例¶
curl -X PUT -H "Content-Type: application/json" -H "X-Auth-Token: <token>" -d '{"pool":{"lb_algorithm":"LEAST_CONNECTIONS","session_persistence":{"type":"SOURCE_IP"},"description":"second description","name":"second_name","tags":["updated_tag"],"tls_container_ref":"http://198.51.100.10:9311/v1/containers/c1cd501d-3cf9-4873-a11b-a74bebcde929","ca_tls_container_ref":null,"crl_container_ref":null,"tls_enabled":false,"tls_ciphers":"ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256", "tls_versions": ["TLSv1.2", "TLSv1.3"], "alpn_protocols": ["http/1.1", "http/1.0"]}}' http://198.51.100.10:9876/v2/lbaas/pools/4029d267-3983-4224-a3d0-afb3fe16a2cd
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
admin_state_up |
body |
布尔值 |
资源的管理员状态,即启用( |
alpn_protocols |
body |
数组 |
ALPN 协议列表。可用协议:http/1.0、http/1.1、h2 版本 2.24 新增 |
ca_tls_container_ref |
body |
字符串 |
指向 密钥管理器服务中包含 PEM 格式 CA 证书包的 Secret 的引用,用于 版本 2.8 新增 |
created_at |
body |
字符串 |
资源创建的 UTC 日期和时间戳。 |
crl_container_ref |
body |
字符串 |
指向 密钥管理器服务中包含 PEM 格式 CA 吊销列表文件的 Secret 的引用,用于 |
description |
body |
字符串 |
资源的易于阅读的描述。 |
healthmonitor_id |
body |
uuid |
关联的健康监控 ID。 |
id |
body |
uuid |
池的 ID。 |
lb_algorithm |
body |
字符串 |
池的负载均衡算法。可以是 |
listeners |
body |
数组 |
监听器 ID 列表。 |
loadbalancers |
body |
数组 |
负载均衡器 ID 列表。 |
members |
body |
数组 |
成员 ID 列表。 |
name |
body |
字符串 |
资源的易于阅读的名称。 |
operating_status |
body |
字符串 |
资源的运行状态。请参阅 运行状态码。 |
project_id |
body |
字符串 |
拥有此资源的项目的 ID。 |
协议 |
body |
字符串 |
资源的协议。可以是 |
provisioning_status |
body |
字符串 |
资源的配置状态。请参阅 配置状态码。 |
session_persistence |
body |
对象 |
一个 JSON 对象,指定池的会话持久性,或者 |
tags |
body |
数组 |
分配给资源的简单字符串列表。 版本 2.5 新增 |
tls_enabled |
body |
布尔值 |
当 版本 2.8 新增 |
tls_ciphers |
body |
字符串 |
OpenSSL 格式的密码列表(冒号分隔)。请参阅 https://www.openssl.org/docs/man1.1.1/man1/ciphers.html 版本 2.15 新增 |
tls_container_ref |
body |
字符串 |
指向 密钥管理器服务中包含 PKCS12 格式证书/密钥包的 Secret 的引用,用于 版本 2.8 新增 |
tls_versions |
body |
数组 |
TLS 协议版本列表。可用版本:SSLv3、TLSv1、TLSv1.1、TLSv1.2、TLSv1.3 版本 2.17 新增 |
updated_at |
body |
字符串 |
上次更新资源的 UTC 日期和时间戳。 |
响应示例¶
{
"pool": {
"lb_algorithm": "LEAST_CONNECTIONS",
"protocol": "HTTP",
"description": "Super Least Connections Pool",
"admin_state_up": true,
"loadbalancers": [
{
"id": "607226db-27ef-4d41-ae89-f2a800e9c2db"
}
],
"created_at": "2017-05-10T18:14:44",
"provisioning_status": "PENDING_UPDATE",
"updated_at": "2017-05-10T23:08:12",
"session_persistence": {
"cookie_name": null,
"type": "SOURCE_IP"
},
"listeners": [
{
"id": "023f2e34-7806-443b-bfae-16c324569a3d"
}
],
"members": [],
"healthmonitor_id": null,
"project_id": "e3cd678b11784734bc366148aa37580e",
"id": "4029d267-3983-4224-a3d0-afb3fe16a2cd",
"operating_status": "ONLINE",
"name": "super-least-conn-pool",
"tags": ["updated_tag"],
"tls_container_ref": "http://198.51.100.10:9311/v1/containers/c1cd501d-3cf9-4873-a11b-a74bebcde929",
"ca_tls_container_ref": null,
"crl_container_ref": null,
"tls_enabled": false,
"tls_ciphers": "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256",
"tls_versions": ["TLSv1.2", "TLSv1.3"],
"alpn_protocols": ["http/1.1", "http/1.0"]
}
}
从负载均衡器中移除池及其关联配置。
API 将立即清除任何和所有配置数据,具体取决于配置设置。您无法恢复它。
成功¶
代码 |
原因 |
|---|---|
204 - No Content |
请求已满足,但服务未返回任何内容。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
由于凭据无效,访问被拒绝。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
409 - Conflict |
此资源有一个正在进行的操作,与此请求冲突。 |
500 - 内部服务器错误 |
服务出现问题,导致无法满足请求。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
pool_id |
路径 |
uuid |
要查询的池的 ID。 |
Curl 示例¶
curl -X DELETE -H "X-Auth-Token: <token>" http://198.51.100.10:9876/v2/lbaas/pools/4029d267-3983-4224-a3d0-afb3fe16a2cd
响应¶
成功的 DELETE 请求没有响应正文内容。
成员¶
列出项目所有成员。
使用 fields 查询参数来控制响应体中返回的字段。此外,您还可以使用查询字符串参数过滤结果。有关信息,请参阅 过滤和列选择。
管理员用户可以指定一个与自己的不同的项目 ID 来列出其他项目的成员。
列表可能为空。
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
由于凭据无效,访问被拒绝。 |
500 - 内部服务器错误 |
服务出现问题,导致无法满足请求。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
fields (可选) |
查询 |
字符串 |
您希望服务器返回的字段。如果未指定 |
pool_id |
路径 |
uuid |
要查询的池的 ID。 |
project_id (可选) |
查询 |
字符串 |
要查询的项目 ID。 |
Curl 示例¶
curl -X GET -H "X-Auth-Token: <token>" http://198.51.100.10:9876/v2/lbaas/pools/24a43e68-36de-45f6-89cf-c03df583131d/members?project_id=e3cd678b11784734bc366148aa37580e
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
address |
body |
字符串 |
后端成员服务器的 IP 地址。 |
admin_state_up |
body |
布尔值 |
资源的管理员状态,即启用( |
备份中 |
body |
布尔值 |
成员是否为备份?只有当所有非备份成员都处于宕机状态时,备份成员才会接收流量。 新增于版本 2.1 |
created_at |
body |
字符串 |
资源创建的 UTC 日期和时间戳。 |
id |
body |
uuid |
成员的 ID。 |
monitor_address |
body |
字符串 |
用于健康监控后端成员的备用 IP 地址。默认为 |
monitor_port |
body |
整数 |
用于健康监控后端成员的备用协议端口。默认为 |
name |
body |
字符串 |
资源的易于阅读的名称。 |
operating_status |
body |
字符串 |
资源的运行状态。请参阅 运行状态码。 |
project_id |
body |
字符串 |
拥有此资源的项目的 ID。 |
protocol_port |
body |
整数 |
后端成员服务器正在侦听的协议端口号。 |
provisioning_status |
body |
字符串 |
资源的配置状态。请参阅 配置状态码。 |
subnet_id |
body |
uuid |
成员服务可访问的子网 ID。 |
tags |
body |
数组 |
分配给资源的简单字符串列表。 版本 2.5 新增 |
updated_at |
body |
字符串 |
上次更新资源的 UTC 日期和时间戳。 |
weight |
body |
整数 |
成员的权重决定了其与其他池成员相比服务的请求或连接的比例。例如,权重为 10 的成员接收的请求是权重为 2 的成员的五倍。值为 0 表示该成员不接收新连接,但继续处理现有连接。有效值范围为 |
vnic_type |
body |
字符串 |
用于成员端口的成员 vNIC 类型。可以是 版本 2.29 新增 |
响应示例¶
{
"members": [
{
"monitor_port": 8080,
"project_id": "e3cd678b11784734bc366148aa37580e",
"name": "web-server-1",
"weight": 20,
"backup": false,
"admin_state_up": true,
"subnet_id": "bbb35f84-35cc-4b2f-84c2-a6a29bba68aa",
"created_at": "2017-05-11T17:21:34",
"provisioning_status": "ACTIVE",
"monitor_address": null,
"updated_at": "2017-05-11T17:21:37",
"address": "192.0.2.16",
"protocol_port": 80,
"id": "957a1ace-1bd2-449b-8455-820b6e4b63f3",
"operating_status": "NO_MONITOR",
"tags": ["test_tag"],
"vnic_type": "normal"
}
]
}
此操作通过使用您在请求对象中定义的配置来预配成员并将其添加到池中。API 验证请求并开始预配过程后,将返回一个包含唯一 ID 的响应对象。
在响应中,成员的 provisioning status 为 ACTIVE、PENDING_CREATE 或 ERROR。
如果状态为 PENDING_CREATE,请发出 GET 请求 /v2/lbaas/pools/{pool_id}/members/{member_id} 来查看预配操作的进度。当成员状态更改为 ACTIVE 时,表示成员已成功预配并可进行进一步配置。
如果 API 由于数据不足或数据无效而无法满足请求,则服务将返回 HTTP Bad Request (400) 响应代码,并在响应体中提供失败信息。验证错误要求您纠正错误并重新提交请求。
最低限度,您必须指定以下成员属性
address。后端成员接收来自负载均衡器流量的 IP 地址。protocol_port后端成员侦听流量的端口。
省略某些属性时,它们将接收默认值
admin_state_up。默认为true。backup。默认为false。weight。默认为1。
如果省略 subnet_id 参数,则将使用父负载均衡器的 vip_subnet_id 作为成员子网 UUID。
成员的 address 不一定需要是 subnet_id 子网的成员。成员可以通过默认路由或使用子网上定义的 host_routes 从指定的子网路由。
管理员用户可以指定一个与自己的不同的项目 ID 来为其他项目创建成员。
monitor_address 和/或 monitor_port 可用于让健康监视器(如果已为池配置)在执行对成员的健康检查时连接到备用 IP 地址和端口。
要创建成员,负载均衡器必须具有 ACTIVE 预配状态。
成功¶
代码 |
原因 |
|---|---|
201 - 已创建 |
请求已完成,并创建了新资源。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
由于凭据无效,访问被拒绝。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
409 - Conflict |
此资源有一个正在进行的操作,与此请求冲突。 |
500 - 内部服务器错误 |
服务出现问题,导致无法满足请求。 |
503 - 服务不可用 |
服务现在无法处理请求。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
admin_state_up (可选) |
body |
布尔值 |
资源的管理员状态,即启用( |
address |
body |
字符串 |
资源的 IP 地址。 |
backup (可选) |
body |
布尔值 |
成员是否为备份?只有当所有非备份成员都处于宕机状态时,备份成员才会接收流量。 新增于版本 2.1 |
monitor_address (可选) |
body |
字符串 |
用于健康监控后端成员的备用 IP 地址。默认为 |
monitor_port (可选) |
body |
整数 |
用于健康监控后端成员的备用协议端口。默认为 |
name (可选) |
body |
字符串 |
资源的易于阅读的名称。 |
pool_id |
路径 |
uuid |
要查询的池的 ID。 |
project_id (可选) |
body |
字符串 |
拥有此资源的项目的 ID。(已弃用) |
protocol_port |
body |
整数 |
资源的协议端口号。 |
request_sriov (可选) |
body |
布尔值 |
请求为成员网络端口使用 SR-IOV VF。默认为 版本 2.29 新增 |
subnet_id (可选) |
body |
uuid |
成员服务可访问的子网 ID。 |
tags (可选) |
body |
数组 |
分配给资源的简单字符串列表。 版本 2.5 新增 |
weight (可选) |
body |
整数 |
成员的权重决定了其与其他池成员相比服务的请求或连接的比例。例如,权重为 10 的成员接收的请求是权重为 2 的成员的五倍。值为 0 表示该成员不接收新连接,但继续处理现有连接。有效值范围为 |
请求示例¶
{
"member": {
"name": "web-server-1",
"weight": "20",
"admin_state_up": true,
"subnet_id": "bbb35f84-35cc-4b2f-84c2-a6a29bba68aa",
"address": "192.0.2.16",
"protocol_port": "80",
"monitor_port": 8080,
"backup": false,
"tags": ["test_tag"]
}
}
Curl 示例¶
curl -X POST -H "Content-Type: application/json" -H "X-Auth-Token: <token>" -d '{"member":{"name":"web-server-1","weight":"20","admin_state_up":true,"subnet_id":"bbb35f84-35cc-4b2f-84c2-a6a29bba68aa","address":"192.0.2.16","protocol_port":"80","monitor_port":8080,"backup":false,"tags":["test_tag"]}}' http://198.51.100.10:9876/v2/lbaas/pools/4029d267-3983-4224-a3d0-afb3fe16a2cd/members
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
address |
body |
字符串 |
后端成员服务器的 IP 地址。 |
admin_state_up |
body |
布尔值 |
资源的管理员状态,即启用( |
备份中 |
body |
布尔值 |
成员是否为备份?只有当所有非备份成员都处于宕机状态时,备份成员才会接收流量。 新增于版本 2.1 |
created_at |
body |
字符串 |
资源创建的 UTC 日期和时间戳。 |
id |
body |
uuid |
成员的 ID。 |
monitor_address |
body |
字符串 |
用于健康监控后端成员的备用 IP 地址。默认为 |
monitor_port |
body |
整数 |
用于健康监控后端成员的备用协议端口。默认为 |
name |
body |
字符串 |
资源的易于阅读的名称。 |
operating_status |
body |
字符串 |
资源的运行状态。请参阅 运行状态码。 |
project_id |
body |
字符串 |
拥有此资源的项目的 ID。 |
protocol_port |
body |
整数 |
后端成员服务器正在侦听的协议端口号。 |
provisioning_status |
body |
字符串 |
资源的配置状态。请参阅 配置状态码。 |
subnet_id |
body |
uuid |
成员服务可访问的子网 ID。 |
tags |
body |
数组 |
分配给资源的简单字符串列表。 版本 2.5 新增 |
updated_at |
body |
字符串 |
上次更新资源的 UTC 日期和时间戳。 |
weight |
body |
整数 |
成员的权重决定了其与其他池成员相比服务的请求或连接的比例。例如,权重为 10 的成员接收的请求是权重为 2 的成员的五倍。值为 0 表示该成员不接收新连接,但继续处理现有连接。有效值范围为 |
vnic_type |
body |
字符串 |
用于成员端口的成员 vNIC 类型。可以是 版本 2.29 新增 |
响应示例¶
{
"member": {
"monitor_port": 8080,
"project_id": "e3cd678b11784734bc366148aa37580e",
"name": "web-server-1",
"weight": 20,
"backup": false,
"admin_state_up": true,
"subnet_id": "bbb35f84-35cc-4b2f-84c2-a6a29bba68aa",
"created_at": "2017-05-11T17:21:34",
"provisioning_status": "ACTIVE",
"monitor_address": null,
"updated_at": "2017-05-11T17:21:37",
"address": "192.0.2.16",
"protocol_port": 80,
"id": "957a1ace-1bd2-449b-8455-820b6e4b63f3",
"operating_status": "NO_MONITOR",
"tags": ["test_tag"],
"vnic_type": "normal"
}
}
显示池成员的详细信息。
如果您不是管理员用户,并且父负载均衡器不属于您的项目,则服务将返回 HTTP Forbidden (403) 响应代码。
此操作不需要请求正文。
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
401 - 未授权 |
由于凭据无效,访问被拒绝。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
500 - 内部服务器错误 |
服务出现问题,导致无法满足请求。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
fields (可选) |
查询 |
字符串 |
您希望服务器返回的字段。如果未指定 |
member_id |
路径 |
uuid |
要查询的成员的 ID。 |
pool_id |
路径 |
uuid |
要查询的池的 ID。 |
Curl 示例¶
curl -X GET -H "X-Auth-Token: <token>" http://198.51.100.10:9876/v2/lbaas/pools/24a43e68-36de-45f6-89cf-c03df583131d/members/957a1ace-1bd2-449b-8455-820b6e4b63f3
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
address |
body |
字符串 |
后端成员服务器的 IP 地址。 |
admin_state_up |
body |
布尔值 |
资源的管理员状态,即启用( |
备份中 |
body |
布尔值 |
成员是否为备份?只有当所有非备份成员都处于宕机状态时,备份成员才会接收流量。 新增于版本 2.1 |
created_at |
body |
字符串 |
资源创建的 UTC 日期和时间戳。 |
id |
body |
uuid |
成员的 ID。 |
monitor_address |
body |
字符串 |
用于健康监控后端成员的备用 IP 地址。默认为 |
monitor_port |
body |
整数 |
用于健康监控后端成员的备用协议端口。默认为 |
name |
body |
字符串 |
资源的易于阅读的名称。 |
operating_status |
body |
字符串 |
资源的运行状态。请参阅 运行状态码。 |
project_id |
body |
字符串 |
拥有此资源的项目的 ID。 |
protocol_port |
body |
整数 |
后端成员服务器正在侦听的协议端口号。 |
provisioning_status |
body |
字符串 |
资源的配置状态。请参阅 配置状态码。 |
subnet_id |
body |
uuid |
成员服务可访问的子网 ID。 |
tags |
body |
数组 |
分配给资源的简单字符串列表。 版本 2.5 新增 |
updated_at |
body |
字符串 |
上次更新资源的 UTC 日期和时间戳。 |
weight |
body |
整数 |
成员的权重决定了其与其他池成员相比服务的请求或连接的比例。例如,权重为 10 的成员接收的请求是权重为 2 的成员的五倍。值为 0 表示该成员不接收新连接,但继续处理现有连接。有效值范围为 |
vnic_type |
body |
字符串 |
用于成员端口的成员 vNIC 类型。可以是 版本 2.29 新增 |
响应示例¶
{
"member": {
"monitor_port": 8080,
"project_id": "e3cd678b11784734bc366148aa37580e",
"name": "web-server-1",
"weight": 20,
"backup": false,
"admin_state_up": true,
"subnet_id": "bbb35f84-35cc-4b2f-84c2-a6a29bba68aa",
"created_at": "2017-05-11T17:21:34",
"provisioning_status": "ACTIVE",
"monitor_address": null,
"updated_at": "2017-05-11T17:21:37",
"address": "192.0.2.16",
"protocol_port": 80,
"id": "957a1ace-1bd2-449b-8455-820b6e4b63f3",
"operating_status": "NO_MONITOR",
"tags": ["test_tag"],
"vnic_type": "normal"
}
}
更新现有成员。
如果请求有效,服务将返回 Accepted (202) 响应代码。要确认更新,请检查成员的预配状态是否为 ACTIVE。如果状态为 PENDING_UPDATE,请使用 GET 操作轮询成员对象以了解更改。
将成员权重设置为 0 意味着该成员将不接收新请求,但会完成任何现有连接。这会将后端成员的活动连接“耗尽”。
此操作将返回更新后的成员对象,其预配状态为 ACTIVE、PENDING_UPDATE 或 ERROR。
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
由于凭据无效,访问被拒绝。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
409 - Conflict |
此资源有一个正在进行的操作,与此请求冲突。 |
500 - 内部服务器错误 |
服务出现问题,导致无法满足请求。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
admin_state_up (可选) |
body |
布尔值 |
资源的管理员状态,即启用( |
backup (可选) |
body |
布尔值 |
成员是否为备份?只有当所有非备份成员都处于宕机状态时,备份成员才会接收流量。 新增于版本 2.1 |
member_id |
路径 |
uuid |
要查询的成员的 ID。 |
monitor_address (可选) |
body |
字符串 |
用于健康监控后端成员的备用 IP 地址。默认为 |
monitor_port (可选) |
body |
整数 |
用于健康监控后端成员的备用协议端口。默认为 |
name (可选) |
body |
字符串 |
资源的易于阅读的名称。 |
pool_id |
路径 |
uuid |
要查询的池的 ID。 |
tags (可选) |
body |
数组 |
分配给资源的简单字符串列表。 版本 2.5 新增 |
weight (可选) |
body |
整数 |
成员的权重决定了其与其他池成员相比服务的请求或连接的比例。例如,权重为 10 的成员接收的请求是权重为 2 的成员的五倍。值为 0 表示该成员不接收新连接,但继续处理现有连接。有效值范围为 |
请求示例¶
{
"member": {
"name": "web-server-1-2",
"weight": "0",
"admin_state_up": "true",
"monitor_address": "192.0.2.40",
"monitor_port": 8888,
"backup": false,
"tags": ["updated_tag"]
}
}
Curl 示例¶
curl -X PUT -H "Content-Type: application/json" -H "X-Auth-Token: <token>" -d '{"member":{"name":"web-server-1-2","weight":"0","admin_state_up":"true","monitor_address":"192.0.2.40","monitor_port":8888,"backup":false,"tags":["updated_tag"]}}' http://198.51.100.10:9876/v2/lbaas/pools/4029d267-3983-4224-a3d0-afb3fe16a2cd/members/957a1ace-1bd2-449b-8455-820b6e4b63f3
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
address |
body |
字符串 |
后端成员服务器的 IP 地址。 |
admin_state_up |
body |
布尔值 |
资源的管理员状态,即启用( |
备份中 |
body |
布尔值 |
成员是否为备份?只有当所有非备份成员都处于宕机状态时,备份成员才会接收流量。 新增于版本 2.1 |
created_at |
body |
字符串 |
资源创建的 UTC 日期和时间戳。 |
id |
body |
uuid |
成员的 ID。 |
monitor_address |
body |
字符串 |
用于健康监控后端成员的备用 IP 地址。默认为 |
monitor_port |
body |
整数 |
用于健康监控后端成员的备用协议端口。默认为 |
name |
body |
字符串 |
资源的易于阅读的名称。 |
operating_status |
body |
字符串 |
资源的运行状态。请参阅 运行状态码。 |
project_id |
body |
字符串 |
拥有此资源的项目的 ID。 |
protocol_port |
body |
整数 |
后端成员服务器正在侦听的协议端口号。 |
provisioning_status |
body |
字符串 |
资源的配置状态。请参阅 配置状态码。 |
subnet_id |
body |
uuid |
成员服务可访问的子网 ID。 |
tags |
body |
数组 |
分配给资源的简单字符串列表。 版本 2.5 新增 |
updated_at |
body |
字符串 |
上次更新资源的 UTC 日期和时间戳。 |
weight |
body |
整数 |
成员的权重决定了其与其他池成员相比服务的请求或连接的比例。例如,权重为 10 的成员接收的请求是权重为 2 的成员的五倍。值为 0 表示该成员不接收新连接,但继续处理现有连接。有效值范围为 |
vnic_type |
body |
字符串 |
用于成员端口的成员 vNIC 类型。可以是 版本 2.29 新增 |
响应示例¶
{
"member": {
"monitor_port": 8080,
"project_id": "e3cd678b11784734bc366148aa37580e",
"name": "web-server-1",
"weight": 20,
"backup": false,
"admin_state_up": true,
"subnet_id": "bbb35f84-35cc-4b2f-84c2-a6a29bba68aa",
"created_at": "2017-05-11T17:21:34",
"provisioning_status": "PENDING_UPDATE",
"monitor_address": null,
"updated_at": "2017-05-11T17:21:37",
"address": "192.0.2.16",
"protocol_port": 80,
"id": "957a1ace-1bd2-449b-8455-820b6e4b63f3",
"operating_status": "NO_MONITOR",
"tags": ["updated_tag"],
"vnic_type": "normal"
}
}
一次 API 调用设置池成员的状态。这可能包括创建新成员、删除旧成员和更新现有成员。现有成员根据地址/端口组合进行匹配。
例如,假设一个池当前有两个成员。这些成员具有以下地址/端口组合:“192.0.2.15:80”和“192.0.2.16:80”。现在假设发出一个 PUT 请求,其中包含以下地址/端口组合的成员:“192.0.2.16:80”和“192.0.2.17:80”。
成员“192.0.2.15:80”将被删除,因为它不在请求中。
成员“192.0.2.16:80”将被更新为匹配该成员的请求数据,因为它已被匹配。
成员“192.0.2.17:80”将被创建,因为不存在这样的成员。
可选参数 additive_only 如果设置为 true,将跳过对列表中缺失成员的删除。如果在上述示例中设置了此参数,成员“192.0.2.15:80”将保留在池中。
如果请求有效,服务将返回 Accepted (202) 响应代码。要确认更新,请检查新成员或更新成员的预配状态是否为 ACTIVE,以及未指定的成员是否已正确删除。如果状态为 PENDING_UPDATE 或 PENDING_DELETE,请使用 GET 轮询成员对象以了解更改。
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
由于凭据无效,访问被拒绝。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
409 - Conflict |
此资源有一个正在进行的操作,与此请求冲突。 |
500 - 内部服务器错误 |
服务出现问题,导致无法满足请求。 |
503 - 服务不可用 |
服务现在无法处理请求。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
additive_only (可选) |
查询 |
布尔值 |
如果为 版本 2.11 中新增 |
admin_state_up (可选) |
body |
布尔值 |
资源的管理员状态,即启用( |
address |
body |
字符串 |
资源的 IP 地址。 |
backup (可选) |
body |
布尔值 |
成员是否为备份?只有当所有非备份成员都处于宕机状态时,备份成员才会接收流量。 新增于版本 2.1 |
monitor_address (可选) |
body |
字符串 |
用于健康监控后端成员的备用 IP 地址。默认为 |
monitor_port (可选) |
body |
整数 |
用于健康监控后端成员的备用协议端口。默认为 |
name (可选) |
body |
字符串 |
资源的易于阅读的名称。 |
pool_id |
路径 |
uuid |
要查询的池的 ID。 |
project_id (可选) |
body |
字符串 |
拥有此资源的项目的 ID。(已弃用) |
protocol_port |
body |
整数 |
资源的协议端口号。 |
request_sriov (可选) |
body |
布尔值 |
请求为成员网络端口使用 SR-IOV VF。默认为 版本 2.29 新增 |
subnet_id (可选) |
body |
uuid |
成员服务可访问的子网 ID。 |
tags (可选) |
body |
数组 |
分配给资源的简单字符串列表。 版本 2.5 新增 |
weight (可选) |
body |
整数 |
成员的权重决定了其与其他池成员相比服务的请求或连接的比例。例如,权重为 10 的成员接收的请求是权重为 2 的成员的五倍。值为 0 表示该成员不接收新连接,但继续处理现有连接。有效值范围为 |
请求示例¶
{
"members": [
{
"name": "web-server-1",
"weight": 20,
"admin_state_up": true,
"subnet_id": "bbb35f84-35cc-4b2f-84c2-a6a29bba68aa",
"address": "192.0.2.16",
"protocol_port": 80,
"monitor_port": 8080,
"tags": ["updated_tag"]
},
{
"name": "web-server-2",
"weight": 10,
"admin_state_up": true,
"subnet_id": "bbb35f84-35cc-4b2f-84c2-a6a29bba68aa",
"address": "192.0.2.17",
"protocol_port": 80,
"monitor_port": 8080,
"tags": ["updated_tag"]
}
]
}
Curl 示例¶
curl -X PUT -H "Content-Type: application/json" -H "X-Auth-Token: <token>" -d '{"members":[{"name":"web-server-1","weight":"20","admin_state_up":true,"subnet_id":"bbb35f84-35cc-4b2f-84c2-a6a29bba68aa","address":"192.0.2.16","protocol_port":"80","monitor_port":8080,"tags":["updated_tag"]},{"name":"web-server-2","weight":"10","admin_state_up":true,"subnet_id":"bbb35f84-35cc-4b2f-84c2-a6a29bba68aa","address":"192.0.2.17","protocol_port":"80","monitor_port":8080,"tags":["updated_tag"]}]}' http://198.51.100.10:9876/v2/lbaas/pools/4029d267-3983-4224-a3d0-afb3fe16a2cd/members
响应¶
成功的 PUT 请求响应没有正文内容。
从池中移除成员及其关联配置。
API 将立即清除任何和所有配置数据,具体取决于配置设置。您无法恢复它。
成功¶
代码 |
原因 |
|---|---|
204 - No Content |
请求已满足,但服务未返回任何内容。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
由于凭据无效,访问被拒绝。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
409 - Conflict |
此资源有一个正在进行的操作,与此请求冲突。 |
500 - 内部服务器错误 |
服务出现问题,导致无法满足请求。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
member_id |
路径 |
uuid |
要查询的成员的 ID。 |
pool_id |
路径 |
uuid |
要查询的池的 ID。 |
Curl 示例¶
curl -X DELETE -H "X-Auth-Token: <token>" http://198.51.100.10:9876/v2/lbaas/pools/4029d267-3983-4224-a3d0-afb3fe16a2cd/members/957a1ace-1bd2-449b-8455-820b6e4b63f3
响应¶
成功的 DELETE 请求没有响应正文内容。
健康监视器¶
列出项目所有健康监视器。
使用 fields 查询参数来控制响应体中返回的字段。此外,您还可以使用查询字符串参数过滤结果。有关信息,请参阅 过滤和列选择。
管理员用户可以指定一个与自己的不同的项目 ID 来列出其他项目的健康监视器。
列表可能为空。
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
由于凭据无效,访问被拒绝。 |
500 - 内部服务器错误 |
服务出现问题,导致无法满足请求。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
fields (可选) |
查询 |
字符串 |
您希望服务器返回的字段。如果未指定 |
project_id (可选) |
查询 |
字符串 |
要查询的项目 ID。 |
Curl 示例¶
curl -X GET -H "X-Auth-Token: <token>" http://198.51.100.10:9876/v2/lbaas/healthmonitors?project_id=e3cd678b11784734bc366148aa37580e
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
admin_state_up |
body |
布尔值 |
资源的管理员状态,即启用( |
created_at |
body |
字符串 |
资源创建的 UTC 日期和时间戳。 |
delay |
body |
整数 |
向成员发送探测的间隔时间,以秒为单位。 |
domain_name |
body |
字符串 |
域名,将被注入到发往后端服务器的 HTTP Host Header 中,用于 HTTP 健康检查。 版本 2.10 中新增 |
expected_codes |
body |
字符串 |
成员响应中用于声明其健康的预期 HTTP 状态码列表。指定以下值之一
|
http_method |
body |
字符串 |
健康监视器用于请求的 HTTP 方法。可以是 |
http_version |
body |
float |
HTTP 版本。可以是 版本 2.10 中新增 |
id |
body |
uuid |
关联的健康监控 ID。 |
max_retries |
body |
整数 |
在将成员的 |
max_retries_down |
body |
整数 |
在将成员的 |
name |
body |
字符串 |
资源的易于阅读的名称。 |
operating_status |
body |
字符串 |
资源的运行状态。请参阅 运行状态码。 |
pool_id |
body |
uuid |
池的 ID。 |
project_id |
body |
字符串 |
拥有此资源的项目的 ID。 |
provisioning_status |
body |
字符串 |
资源的配置状态。请参阅 配置状态码。 |
tags |
body |
数组 |
分配给资源的简单字符串列表。 版本 2.5 新增 |
timeout |
body |
整数 |
监视器在超时前等待连接的最大时间(以秒为单位)。此值必须小于 delay 值。 |
type |
body |
字符串 |
健康监视器的类型。可以是 |
updated_at |
body |
字符串 |
上次更新资源的 UTC 日期和时间戳。 |
url_path |
body |
字符串 |
监视器用于测试后端成员健康状况的请求的 HTTP URL 路径。必须是以斜杠( |
响应示例¶
{
"healthmonitors": [
{
"project_id": "e3cd678b11784734bc366148aa37580e",
"name": "super-pool-health-monitor",
"admin_state_up": true,
"pools": [
{
"id": "4029d267-3983-4224-a3d0-afb3fe16a2cd"
}
],
"created_at": "2017-05-11T23:53:47",
"provisioning_status": "ACTIVE",
"updated_at": "2017-05-11T23:53:47",
"delay": 10,
"expected_codes": "200",
"max_retries": 1,
"http_method": "GET",
"timeout": 5,
"max_retries_down": 3,
"url_path": "/",
"type": "HTTP",
"id": "8ed3c5ac-6efa-420c-bedb-99ba14e58db5",
"operating_status": "ONLINE",
"tags": ["test_tag"],
"http_version": 1.0,
"domain_name": null
}
]
}
在池上创建健康监视器。
健康监视器定义负载均衡器如何监视后端服务器以确定它们是否可用以服务请求。
此操作通过使用您在请求对象中定义的配置来预配新的健康监视器。API 验证请求并开始预配过程后,API 将返回一个包含唯一 ID 和健康监视器预配状态的响应对象。
在响应中,健康监视器的 provisioning status 为 ACTIVE、PENDING_CREATE 或 ERROR。
如果状态为 PENDING_CREATE,请发出 GET 请求 /v2/lbaas/healthmonitors/{healthmonitor_id} 来查看预配操作的进度。当健康监视器状态更改为 ACTIVE 时,表示健康监视器已成功预配并可进行进一步配置。
如果 API 由于数据不足或数据无效而无法满足请求,则服务将返回 HTTP Bad Request (400) 响应代码,并在响应体中提供失败信息。验证错误要求您纠正错误并重新提交请求。
指定 project_id 已弃用。健康监视器将继承父负载均衡器的 project_id。
最低限度,您必须指定以下健康监视器属性
delay健康检查之间的间隔(以秒为单位)。max_retries在将成员的运行状态更改为 ONLINE 之前的成功检查次数。pool_id要监视的池。timeout健康检查超时的等待时间(以秒为单位)。type健康监视器的类型。可以是HTTP、HTTPS、PING、SCTP、TCP、TLS-HELLO或UDP-CONNECT之一。
省略某些属性时,它们将接收默认值
admin_state_up默认为true。expected_codes从成功的健康检查中预期的 HTTP 状态码。默认为200。http_method默认为GET。http_version默认为1.0。max_retries_down默认为3。url_path默认为/。
要创建健康监视器,父负载均衡器必须具有 ACTIVE 预配状态。
成功¶
代码 |
原因 |
|---|---|
201 - 已创建 |
请求已完成,并创建了新资源。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
由于凭据无效,访问被拒绝。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
409 - Conflict |
此资源有一个正在进行的操作,与此请求冲突。 |
500 - 内部服务器错误 |
服务出现问题,导致无法满足请求。 |
503 - 服务不可用 |
服务现在无法处理请求。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
admin_state_up (可选) |
body |
布尔值 |
资源的管理员状态,即启用( |
delay |
body |
整数 |
向成员发送探测的间隔时间,以秒为单位。 |
domain_name (可选) |
body |
字符串 |
域名,将被注入到发往后端服务器的 HTTP Host Header 中,用于 HTTP 健康检查。 版本 2.10 中新增 |
expected_codes (可选) |
body |
字符串 |
成员响应中用于声明其健康的预期 HTTP 状态码列表。指定以下值之一
默认为 200。 |
http_method (可选) |
body |
字符串 |
健康监视器用于请求的 HTTP 方法。可以是 |
http_version (可选) |
body |
float |
HTTP 版本。可以是 版本 2.10 中新增 |
name (可选) |
body |
字符串 |
资源的易于阅读的名称。 |
max_retries |
body |
整数 |
在将成员的 |
max_retries_down (可选) |
body |
整数 |
在将成员的 |
pool_id |
body |
uuid |
池的 ID。 |
project_id (可选) |
body |
字符串 |
拥有此资源的项目的 ID。(已弃用) |
tags (可选) |
body |
数组 |
分配给资源的简单字符串列表。 版本 2.5 新增 |
timeout |
body |
整数 |
监视器在超时前等待连接的最大时间(以秒为单位)。此值必须小于 delay 值。 |
type |
body |
字符串 |
健康监视器的类型。可以是 |
url_path (可选) |
body |
字符串 |
监视器用于测试后端成员健康状况的请求的 HTTP URL 路径。必须是以斜杠( |
请求示例¶
{
"healthmonitor": {
"name": "super-pool-health-monitor",
"admin_state_up": true,
"pool_id": "4029d267-3983-4224-a3d0-afb3fe16a2cd",
"delay": "10",
"expected_codes": "200",
"max_retries": "1",
"http_method": "GET",
"timeout": "5",
"url_path": "/",
"type": "HTTP",
"max_retries_down": 3,
"tags": ["test_tag"],
"http_version": 1.1,
"domain_name": "testlab.com"
}
}
Curl 示例¶
curl -X POST -H "Content-Type: application/json" -H "X-Auth-Token: <token>" -d '{"healthmonitor":{"name":"super-pool-health-monitor","admin_state_up":true,"pool_id":"4029d267-3983-4224-a3d0-afb3fe16a2cd","delay":"10","expected_codes":"200","max_retries":"1","http_method":"GET","timeout":"5","url_path":"/","type":"HTTP","max_retries_down":3,"tags":["test_tag"],"http_version":1.1,"domain_name":"testlab.com"}}' http://198.51.100.10:9876/v2/lbaas/healthmonitors
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
admin_state_up |
body |
布尔值 |
资源的管理员状态,即启用( |
created_at |
body |
字符串 |
资源创建的 UTC 日期和时间戳。 |
delay |
body |
整数 |
向成员发送探测的间隔时间,以秒为单位。 |
domain_name |
body |
字符串 |
域名,将被注入到发往后端服务器的 HTTP Host Header 中,用于 HTTP 健康检查。 版本 2.10 中新增 |
expected_codes |
body |
字符串 |
成员响应中用于声明其健康的预期 HTTP 状态码列表。指定以下值之一
|
http_method |
body |
字符串 |
健康监视器用于请求的 HTTP 方法。可以是 |
http_version |
body |
float |
HTTP 版本。可以是 版本 2.10 中新增 |
id |
body |
uuid |
关联的健康监控 ID。 |
max_retries |
body |
整数 |
在将成员的 |
max_retries_down |
body |
整数 |
在将成员的 |
name |
body |
字符串 |
资源的易于阅读的名称。 |
operating_status |
body |
字符串 |
资源的运行状态。请参阅 运行状态码。 |
pool_id |
body |
uuid |
池的 ID。 |
project_id |
body |
字符串 |
拥有此资源的项目的 ID。 |
provisioning_status |
body |
字符串 |
资源的配置状态。请参阅 配置状态码。 |
tags |
body |
数组 |
分配给资源的简单字符串列表。 版本 2.5 新增 |
timeout |
body |
整数 |
监视器在超时前等待连接的最大时间(以秒为单位)。此值必须小于 delay 值。 |
type |
body |
字符串 |
健康监视器的类型。可以是 |
updated_at |
body |
字符串 |
上次更新资源的 UTC 日期和时间戳。 |
url_path |
body |
字符串 |
监视器用于测试后端成员健康状况的请求的 HTTP URL 路径。必须是以斜杠( |
响应示例¶
{
"healthmonitor": {
"project_id": "e3cd678b11784734bc366148aa37580e",
"name": "super-pool-health-monitor",
"admin_state_up": true,
"pools": [
{
"id": "4029d267-3983-4224-a3d0-afb3fe16a2cd"
}
],
"created_at": "2017-05-11T23:53:47",
"provisioning_status": "ACTIVE",
"updated_at": "2017-05-11T23:53:47",
"delay": 10,
"expected_codes": "200",
"max_retries": 1,
"http_method": "GET",
"timeout": 5,
"max_retries_down": 3,
"url_path": "/",
"type": "HTTP",
"id": "8ed3c5ac-6efa-420c-bedb-99ba14e58db5",
"operating_status": "ONLINE",
"tags": ["test_tag"],
"http_version": 1.1,
"domain_name": "testlab.com"
}
}
显示健康监视器的详细信息。
如果您不是管理员用户,并且父负载均衡器不属于您的项目,则服务将返回 HTTP Forbidden (403) 响应代码。
此操作不需要请求正文。
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
401 - 未授权 |
由于凭据无效,访问被拒绝。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
500 - 内部服务器错误 |
服务出现问题,导致无法满足请求。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
fields (可选) |
查询 |
字符串 |
您希望服务器返回的字段。如果未指定 |
healthmonitor_id |
路径 |
uuid |
要查询的健康监视器的 ID。 |
Curl 示例¶
curl -X GET -H "X-Auth-Token: <token>" http://198.51.100.10:9876/v2/lbaas/healthmonitors/8ed3c5ac-6efa-420c-bedb-99ba14e58db5
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
admin_state_up |
body |
布尔值 |
资源的管理员状态,即启用( |
created_at |
body |
字符串 |
资源创建的 UTC 日期和时间戳。 |
delay |
body |
整数 |
向成员发送探测的间隔时间,以秒为单位。 |
domain_name |
body |
字符串 |
域名,将被注入到发往后端服务器的 HTTP Host Header 中,用于 HTTP 健康检查。 版本 2.10 中新增 |
expected_codes |
body |
字符串 |
成员响应中用于声明其健康的预期 HTTP 状态码列表。指定以下值之一
|
http_method |
body |
字符串 |
健康监视器用于请求的 HTTP 方法。可以是 |
http_version |
body |
float |
HTTP 版本。可以是 版本 2.10 中新增 |
id |
body |
uuid |
关联的健康监控 ID。 |
max_retries |
body |
整数 |
在将成员的 |
max_retries_down |
body |
整数 |
在将成员的 |
name |
body |
字符串 |
资源的易于阅读的名称。 |
operating_status |
body |
字符串 |
资源的运行状态。请参阅 运行状态码。 |
pool_id |
body |
uuid |
池的 ID。 |
project_id |
body |
字符串 |
拥有此资源的项目的 ID。 |
provisioning_status |
body |
字符串 |
资源的配置状态。请参阅 配置状态码。 |
tags |
body |
数组 |
分配给资源的简单字符串列表。 版本 2.5 新增 |
timeout |
body |
整数 |
监视器在超时前等待连接的最大时间(以秒为单位)。此值必须小于 delay 值。 |
type |
body |
字符串 |
健康监视器的类型。可以是 |
updated_at |
body |
字符串 |
上次更新资源的 UTC 日期和时间戳。 |
url_path |
body |
字符串 |
监视器用于测试后端成员健康状况的请求的 HTTP URL 路径。必须是以斜杠( |
响应示例¶
{
"healthmonitor": {
"project_id": "e3cd678b11784734bc366148aa37580e",
"name": "super-pool-health-monitor",
"admin_state_up": true,
"pools": [
{
"id": "4029d267-3983-4224-a3d0-afb3fe16a2cd"
}
],
"created_at": "2017-05-11T23:53:47",
"provisioning_status": "ACTIVE",
"updated_at": "2017-05-11T23:53:47",
"delay": 10,
"expected_codes": "200",
"max_retries": 1,
"http_method": "GET",
"timeout": 5,
"max_retries_down": 3,
"url_path": "/",
"type": "HTTP",
"id": "8ed3c5ac-6efa-420c-bedb-99ba14e58db5",
"operating_status": "ONLINE",
"tags": ["test_tag"],
"http_version": 1.0,
"domain_name": null
}
}
更新现有健康监视器。
如果请求有效,服务将返回 Accepted (202) 响应代码。要确认更新,请检查健康监视器的预配状态是否为 ACTIVE。如果状态为 PENDING_UPDATE,请使用 GET 操作轮询健康监视器对象以了解更改。
此操作将返回更新后的健康监视器对象,其预配状态为 ACTIVE、PENDING_UPDATE 或 ERROR。
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
由于凭据无效,访问被拒绝。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
409 - Conflict |
此资源有一个正在进行的操作,与此请求冲突。 |
500 - 内部服务器错误 |
服务出现问题,导致无法满足请求。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
admin_state_up (可选) |
body |
布尔值 |
资源的管理员状态,即启用( |
delay (可选) |
body |
整数 |
向成员发送探测的间隔时间,以秒为单位。 |
domain_name (可选) |
body |
字符串 |
域名,将被注入到发往后端服务器的 HTTP Host Header 中,用于 HTTP 健康检查。 版本 2.10 中新增 |
expected_codes (可选) |
body |
字符串 |
成员响应中用于声明其健康的预期 HTTP 状态码列表。指定以下值之一
默认为 200。 |
healthmonitor_id |
路径 |
uuid |
要查询的健康监视器的 ID。 |
http_method (可选) |
body |
字符串 |
健康监视器用于请求的 HTTP 方法。可以是 |
http_version (可选) |
body |
float |
HTTP 版本。可以是 版本 2.10 中新增 |
max_retries (可选) |
body |
整数 |
在将成员的 |
max_retries_down (可选) |
body |
整数 |
在将成员的 |
name (可选) |
body |
字符串 |
资源的易于阅读的名称。 |
tags (可选) |
body |
数组 |
分配给资源的简单字符串列表。 版本 2.5 新增 |
timeout (可选) |
body |
整数 |
监视器在超时前等待连接的最大时间(以秒为单位)。此值必须小于 delay 值。 |
url_path (可选) |
body |
字符串 |
监视器用于测试后端成员健康状况的请求的 HTTP URL 路径。必须是以斜杠( |
请求示例¶
{
"healthmonitor": {
"name": "super-pool-health-monitor-updated",
"admin_state_up": true,
"delay": 5,
"expected_codes": "200",
"http_method": "HEAD",
"timeout": 2,
"url_path": "/index.html",
"max_retries": 2,
"max_retries_down": 2,
"tags": ["updated_tag"],
"http_version": 1.1
}
}
Curl 示例¶
curl -X PUT -H "Content-Type: application/json" -H "X-Auth-Token: <token>" -d '{"healthmonitor":{"name":"super-pool-health-monitor-updated","admin_state_up":true,"delay":5,"expected_codes":"200","http_method":"HEAD","timeout":2,"url_path":"/index.html","max_retries":2,"max_retries_down":2,"tags":["updated_tag"],"http_version":1.1}}' http://198.51.100.10:9876/v2/lbaas/healthmonitors/8ed3c5ac-6efa-420c-bedb-99ba14e58db5
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
admin_state_up |
body |
布尔值 |
资源的管理员状态,即启用( |
created_at |
body |
字符串 |
资源创建的 UTC 日期和时间戳。 |
delay |
body |
整数 |
向成员发送探测的间隔时间,以秒为单位。 |
domain_name |
body |
字符串 |
域名,将被注入到发往后端服务器的 HTTP Host Header 中,用于 HTTP 健康检查。 版本 2.10 中新增 |
expected_codes |
body |
字符串 |
成员响应中用于声明其健康的预期 HTTP 状态码列表。指定以下值之一
|
http_method |
body |
字符串 |
健康监视器用于请求的 HTTP 方法。可以是 |
http_version |
body |
float |
HTTP 版本。可以是 版本 2.10 中新增 |
id |
body |
uuid |
关联的健康监控 ID。 |
max_retries |
body |
整数 |
在将成员的 |
max_retries_down |
body |
整数 |
在将成员的 |
name |
body |
字符串 |
资源的易于阅读的名称。 |
operating_status |
body |
字符串 |
资源的运行状态。请参阅 运行状态码。 |
pool_id |
body |
uuid |
池的 ID。 |
project_id |
body |
字符串 |
拥有此资源的项目的 ID。 |
provisioning_status |
body |
字符串 |
资源的配置状态。请参阅 配置状态码。 |
tags |
body |
数组 |
分配给资源的简单字符串列表。 版本 2.5 新增 |
timeout |
body |
整数 |
监视器在超时前等待连接的最大时间(以秒为单位)。此值必须小于 delay 值。 |
type |
body |
字符串 |
健康监视器的类型。可以是 |
updated_at |
body |
字符串 |
上次更新资源的 UTC 日期和时间戳。 |
url_path |
body |
字符串 |
监视器用于测试后端成员健康状况的请求的 HTTP URL 路径。必须是以斜杠( |
响应示例¶
{
"healthmonitor": {
"project_id": "e3cd678b11784734bc366148aa37580e",
"name": "super-pool-health-monitor-updated",
"admin_state_up": true,
"pools": [
{
"id": "4029d267-3983-4224-a3d0-afb3fe16a2cd"
}
],
"created_at": "2017-05-11T23:53:47",
"provisioning_status": "PENDING_UPDATE",
"updated_at": "2017-05-11T23:53:47",
"delay": 5,
"expected_codes": "200",
"max_retries": 2,
"http_method": "HEAD",
"timeout": 2,
"max_retries_down": 2,
"url_path": "/index.html",
"type": "HTTP",
"id": "8ed3c5ac-6efa-420c-bedb-99ba14e58db5",
"operating_status": "ONLINE",
"tags": ["updated_tag"],
"http_version": 1.1,
"domain_name": null
}
}
从项目中移除健康监视器及其关联配置。
API 将立即清除任何和所有配置数据,具体取决于配置设置。您无法恢复它。
成功¶
代码 |
原因 |
|---|---|
204 - No Content |
请求已满足,但服务未返回任何内容。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
由于凭据无效,访问被拒绝。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
409 - Conflict |
此资源有一个正在进行的操作,与此请求冲突。 |
500 - 内部服务器错误 |
服务出现问题,导致无法满足请求。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
healthmonitor_id |
路径 |
uuid |
要查询的健康监视器的 ID。 |
Curl 示例¶
curl -X DELETE -H "X-Auth-Token: <token>" http://198.51.100.10:9876/v2/lbaas/healthmonitors/8ed3c5ac-6efa-420c-bedb-99ba14e58db5
响应¶
成功的 DELETE 请求没有响应正文内容。
L7 策略¶
列出项目所有 L7 策略。
使用 fields 查询参数来控制响应体中返回的字段。此外,您还可以使用查询字符串参数过滤结果。有关信息,请参阅 过滤和列选择。
管理员用户可以指定一个与自己的不同的项目 ID 来列出其他项目的 L7 策略。
列表可能为空。
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
由于凭据无效,访问被拒绝。 |
500 - 内部服务器错误 |
服务出现问题,导致无法满足请求。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
fields (可选) |
查询 |
字符串 |
您希望服务器返回的字段。如果未指定 |
project_id (可选) |
查询 |
字符串 |
要查询的项目 ID。 |
Curl 示例¶
curl -X GET -H "X-Auth-Token: <token>" http://198.51.100.10:9876/v2/lbaas/l7policies?project_id=e3cd678b11784734bc366148aa37580e
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
动作 |
body |
字符串 |
L7 策略操作。可以是 |
admin_state_up |
body |
布尔值 |
资源的管理员状态,即启用( |
created_at |
body |
字符串 |
资源创建的 UTC 日期和时间戳。 |
description |
body |
字符串 |
资源的易于阅读的描述。 |
id |
body |
uuid |
L7 策略的 ID。 |
listener_id |
body |
uuid |
监听器的 ID。 |
name |
body |
字符串 |
资源的易于阅读的名称。 |
operating_status |
body |
字符串 |
资源的运行状态。请参阅 运行状态码。 |
position |
body |
整数 |
此策略在监听器上的位置。位置从 1 开始。 |
project_id |
body |
字符串 |
拥有此资源的项目的 ID。 |
provisioning_status |
body |
字符串 |
资源的配置状态。请参阅 配置状态码。 |
redirect_http_code |
body |
整数 |
匹配此策略的请求将使用指定的 HTTP 响应码重定向到指定的 URL 或前缀 URL。当 版本 2.9 新增 |
redirect_pool_id |
body |
uuid |
匹配此策略的请求将重定向到此 ID 的池。仅当 |
redirect_prefix |
body |
字符串 |
匹配此策略的请求将重定向到此前缀 URL。仅当 |
redirect_url |
body |
字符串 |
匹配此策略的请求将重定向到此 URL。仅当 |
rules |
body |
数组 |
关联的 L7 规则 ID 列表。 |
tags |
body |
数组 |
分配给资源的简单字符串列表。 版本 2.5 新增 |
updated_at |
body |
字符串 |
上次更新资源的 UTC 日期和时间戳。 |
响应示例¶
{
"l7policies": [
{
"listener_id": "023f2e34-7806-443b-bfae-16c324569a3d",
"description": "Redirect requests to example.com",
"admin_state_up": true,
"rules": [
{
"id": "efd6a3f8-73bf-47f0-8ae6-503ebda57372"
}
],
"created_at": "2017-06-24T23:25:14",
"provisioning_status": "ACTIVE",
"updated_at": "2017-06-24T23:30:05",
"redirect_http_code": 302,
"redirect_pool_id": null,
"redirect_prefix": null,
"redirect_url": "http://www.example.com",
"action": "REDIRECT_TO_URL",
"position": 1,
"project_id": "e3cd678b11784734bc366148aa37580e",
"id": "8a1412f0-4c32-4257-8b07-af4770b604fd",
"operating_status": "ONLINE",
"name": "redirect-example.com",
"tags": ["test_tag"]
}
]
}
创建 L7 策略。
此操作通过使用您在请求对象中定义的配置来预配新的 L7 策略。API 验证请求并开始预配过程后,API 将返回一个包含唯一 ID 和 L7 策略预配状态的响应对象。
在响应中,L7 策略的 provisioning status 为 ACTIVE、PENDING_CREATE 或 ERROR。
如果状态为 PENDING_CREATE,请发出 GET 请求 /v2/lbaas/l7policies/{l7policy_id} 来查看预配操作的进度。当 L7 策略状态更改为 ACTIVE 时,表示 L7 策略已成功预配并可进行进一步配置。
如果 API 由于数据不足或数据无效而无法满足请求,则服务将返回 HTTP Bad Request (400) 响应代码,并在响应体中提供失败信息。验证错误要求您纠正错误并重新提交请求。
与给定策略关联的所有规则都会逻辑上 AND 起来。请求必须匹配策略的所有规则才能匹配该策略。
如果您需要表达规则之间的逻辑 OR 操作,可以通过创建具有相同操作的多个策略来实现。
如果新策略的创建位置与现有策略的位置匹配,则新策略将被插入到给定位置。
REDIRECT_TO_URL 操作的 L7 策略将返回默认的 HTTP Found (302) 响应码和 redirect_url。此外,请指定 redirect_http_code 来配置所需的 HTTP 响应码,例如 301、302、303、307 和 308。
REJECT 操作的 L7 策略将向请求者返回 Forbidden (403) 响应码。
注意
目前 SCTP、TCP 或 UDP 类型的池不能用于 L7 策略。
成功¶
代码 |
原因 |
|---|---|
201 - 已创建 |
请求已完成,并创建了新资源。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
由于凭据无效,访问被拒绝。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
409 - Conflict |
此资源有一个正在进行的操作,与此请求冲突。 |
500 - 内部服务器错误 |
服务出现问题,导致无法满足请求。 |
503 - 服务不可用 |
服务现在无法处理请求。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
动作 |
body |
字符串 |
L7 策略操作。可以是 |
admin_state_up (可选) |
body |
布尔值 |
资源的管理员状态,即启用( |
description (可选) |
body |
字符串 |
资源的易于阅读的描述。 |
listener_id |
body |
uuid |
监听器的 ID。 |
name (可选) |
body |
字符串 |
资源的易于阅读的名称。 |
position (可选) |
body |
整数 |
此策略在监听器上的位置。位置从 1 开始。 |
project_id (可选) |
body |
字符串 |
拥有此资源的项目的 ID。 |
redirect_http_code (可选) |
body |
整数 |
匹配此策略的请求将使用指定的 HTTP 响应码重定向到指定的 URL 或前缀 URL。当 版本 2.9 新增 |
redirect_pool_id (可选) |
body |
uuid |
匹配此策略的请求将重定向到此 ID 的池。仅当 |
redirect_prefix (可选) |
body |
字符串 |
匹配此策略的请求将重定向到此前缀 URL。仅当 |
redirect_url (可选) |
body |
字符串 |
匹配此策略的请求将重定向到此 URL。仅当 |
tags (可选) |
body |
数组 |
分配给资源的简单字符串列表。 版本 2.5 新增 |
请求示例¶
{
"l7policy": {
"description": "Redirect requests to example.com",
"admin_state_up": true,
"listener_id": "023f2e34-7806-443b-bfae-16c324569a3d",
"redirect_url": "http://www.example.com",
"redirect_http_code": 301,
"name": "redirect-example.com",
"action": "REDIRECT_TO_URL",
"position": 1,
"tags": ["test_tag"]
}
}
Curl 示例¶
curl -X POST -H "Content-Type: application/json" -H "X-Auth-Token: <token>" -d '{"l7policy":{"description":"Redirect requests to example.com","admin_state_up":true,"listener_id":"023f2e34-7806-443b-bfae-16c324569a3d","redirect_http_code":301,"redirect_url":"http://www.example.com","name":"redirect-example.com","action":"REDIRECT_TO_URL","position":1,"tags":["test_tag"]}}' http://198.51.100.10:9876/v2/lbaas/l7policies
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
动作 |
body |
字符串 |
L7 策略操作。可以是 |
admin_state_up |
body |
布尔值 |
资源的管理员状态,即启用( |
created_at |
body |
字符串 |
资源创建的 UTC 日期和时间戳。 |
description |
body |
字符串 |
资源的易于阅读的描述。 |
id |
body |
uuid |
L7 策略的 ID。 |
listener_id |
body |
uuid |
监听器的 ID。 |
name |
body |
字符串 |
资源的易于阅读的名称。 |
operating_status |
body |
字符串 |
资源的运行状态。请参阅 运行状态码。 |
position |
body |
整数 |
此策略在监听器上的位置。位置从 1 开始。 |
project_id |
body |
字符串 |
拥有此资源的项目的 ID。 |
provisioning_status |
body |
字符串 |
资源的配置状态。请参阅 配置状态码。 |
redirect_http_code |
body |
整数 |
匹配此策略的请求将使用指定的 HTTP 响应码重定向到指定的 URL 或前缀 URL。当 版本 2.9 新增 |
redirect_pool_id |
body |
uuid |
匹配此策略的请求将重定向到此 ID 的池。仅当 |
redirect_prefix |
body |
字符串 |
匹配此策略的请求将重定向到此前缀 URL。仅当 |
redirect_url |
body |
字符串 |
匹配此策略的请求将重定向到此 URL。仅当 |
rules |
body |
数组 |
关联的 L7 规则 ID 列表。 |
tags |
body |
数组 |
分配给资源的简单字符串列表。 版本 2.5 新增 |
updated_at |
body |
字符串 |
上次更新资源的 UTC 日期和时间戳。 |
响应示例¶
{
"l7policy": [
{
"listener_id": "023f2e34-7806-443b-bfae-16c324569a3d",
"description": "Redirect requests to example.com",
"admin_state_up": true,
"rules": [
{
"id": "efd6a3f8-73bf-47f0-8ae6-503ebda57372"
}
],
"created_at": "2017-06-24T23:25:14",
"provisioning_status": "PENDING_CREATE",
"updated_at": "2017-06-24T23:30:05",
"redirect_http_code": 301,
"redirect_pool_id": null,
"redirect_prefix": null,
"redirect_url": "http://www.example.com",
"action": "REDIRECT_TO_URL",
"position": 1,
"project_id": "e3cd678b11784734bc366148aa37580e",
"id": "8a1412f0-4c32-4257-8b07-af4770b604fd",
"operating_status": "OFFLINE",
"name": "redirect-example.com",
"tags": ["test_tag"]
}
]
}
显示 L7 策略的详细信息。
如果您不是管理员用户,并且 L7 策略对象不属于您的项目,则服务将返回 HTTP Forbidden (403) 响应代码。
此操作不需要请求正文。
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
401 - 未授权 |
由于凭据无效,访问被拒绝。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
500 - 内部服务器错误 |
服务出现问题,导致无法满足请求。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
fields (可选) |
查询 |
字符串 |
您希望服务器返回的字段。如果未指定 |
l7policy_id |
路径 |
uuid |
要查询的 L7 策略的 ID。 |
Curl 示例¶
curl -X GET -H "X-Auth-Token: <token>" http://198.51.100.10:9876/v2/lbaas/l7policies/8a1412f0-4c32-4257-8b07-af4770b604fd
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
动作 |
body |
字符串 |
L7 策略操作。可以是 |
admin_state_up |
body |
布尔值 |
资源的管理员状态,即启用( |
created_at |
body |
字符串 |
资源创建的 UTC 日期和时间戳。 |
description |
body |
字符串 |
资源的易于阅读的描述。 |
id |
body |
uuid |
L7 策略的 ID。 |
listener_id |
body |
uuid |
监听器的 ID。 |
name |
body |
字符串 |
资源的易于阅读的名称。 |
operating_status |
body |
字符串 |
资源的运行状态。请参阅 运行状态码。 |
position |
body |
整数 |
此策略在监听器上的位置。位置从 1 开始。 |
project_id |
body |
字符串 |
拥有此资源的项目的 ID。 |
provisioning_status |
body |
字符串 |
资源的配置状态。请参阅 配置状态码。 |
redirect_http_code |
body |
整数 |
匹配此策略的请求将使用指定的 HTTP 响应码重定向到指定的 URL 或前缀 URL。当 版本 2.9 新增 |
redirect_pool_id |
body |
uuid |
匹配此策略的请求将重定向到此 ID 的池。仅当 |
redirect_prefix |
body |
字符串 |
匹配此策略的请求将重定向到此前缀 URL。仅当 |
redirect_url |
body |
字符串 |
匹配此策略的请求将重定向到此 URL。仅当 |
rules |
body |
数组 |
关联的 L7 规则 ID 列表。 |
tags |
body |
数组 |
分配给资源的简单字符串列表。 版本 2.5 新增 |
updated_at |
body |
字符串 |
上次更新资源的 UTC 日期和时间戳。 |
响应示例¶
{
"l7policy":
{
"listener_id": "023f2e34-7806-443b-bfae-16c324569a3d",
"description": "Redirect requests to example.com",
"admin_state_up": true,
"rules": [
{
"id": "efd6a3f8-73bf-47f0-8ae6-503ebda57372"
}
],
"created_at": "2017-06-24T23:25:14",
"provisioning_status": "ACTIVE",
"updated_at": "2017-06-24T23:30:05",
"redirect_http_code": 302,
"redirect_pool_id": null,
"redirect_prefix": null,
"redirect_url": "http://www.example.com",
"action": "REDIRECT_TO_URL",
"position": 1,
"project_id": "e3cd678b11784734bc366148aa37580e",
"id": "8a1412f0-4c32-4257-8b07-af4770b604fd",
"operating_status": "ONLINE",
"name": "redirect-example.com",
"tags": ["test_tag"]
}
}
更新 L7 策略。
如果请求有效,服务将返回 Accepted (202) 响应代码。要确认更新,请检查 L7 策略的预配状态是否为 ACTIVE。如果状态为 PENDING_UPDATE,请使用 GET 操作轮询 L7 策略对象以了解更改。
此操作将返回更新后的 L7 策略对象,其预配状态为 ACTIVE、PENDING_UPDATE 或 ERROR。
如果策略更新后的位置与现有策略的位置匹配,则更新后的策略将被插入到给定位置。
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
由于凭据无效,访问被拒绝。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
409 - Conflict |
此资源有一个正在进行的操作,与此请求冲突。 |
500 - 内部服务器错误 |
服务出现问题,导致无法满足请求。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
action(可选) |
body |
字符串 |
L7 策略操作。可以是 |
admin_state_up (可选) |
body |
布尔值 |
资源的管理员状态,即启用( |
description (可选) |
body |
字符串 |
资源的易于阅读的描述。 |
l7policy_id |
路径 |
uuid |
要查询的 L7 策略的 ID。 |
name (可选) |
body |
字符串 |
资源的易于阅读的名称。 |
position (可选) |
body |
整数 |
此策略在监听器上的位置。位置从 1 开始。 |
redirect_http_code (可选) |
body |
整数 |
匹配此策略的请求将使用指定的 HTTP 响应码重定向到指定的 URL 或前缀 URL。当 版本 2.9 新增 |
redirect_pool_id (可选) |
body |
uuid |
匹配此策略的请求将重定向到此 ID 的池。仅当 |
redirect_prefix (可选) |
body |
字符串 |
匹配此策略的请求将重定向到此前缀 URL。仅当 |
redirect_url (可选) |
body |
字符串 |
匹配此策略的请求将重定向到此 URL。仅当 |
tags (可选) |
body |
数组 |
分配给资源的简单字符串列表。 版本 2.5 新增 |
请求示例¶
{
"l7policy": {
"description": "Redirect requests to images.example.com",
"admin_state_up": true,
"redirect_http_code": 301,
"redirect_url": "http://images.example.com",
"name": "redirect-images.example.com",
"action": "REDIRECT_TO_URL",
"position": 1,
"tags": ["updated_tag"]
}
}
Curl 示例¶
curl -X PUT -H "Content-Type: application/json" -H "X-Auth-Token: <token>" -d '{"l7policy":{"description":"Redirect requests to images.example.com","admin_state_up":true,"redirect_http_code":301,"redirect_url":"http://images.example.com","name":"redirect-images.example.com","action":"REDIRECT_TO_URL","position":1,"tags":["updated_tag"]}}' http://198.51.100.10:9876/v2/lbaas/l7policies/8a1412f0-4c32-4257-8b07-af4770b604fd
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
动作 |
body |
字符串 |
L7 策略操作。可以是 |
admin_state_up |
body |
布尔值 |
资源的管理员状态,即启用( |
created_at |
body |
字符串 |
资源创建的 UTC 日期和时间戳。 |
description |
body |
字符串 |
资源的易于阅读的描述。 |
id |
body |
uuid |
L7 策略的 ID。 |
listener_id |
body |
uuid |
监听器的 ID。 |
name |
body |
字符串 |
资源的易于阅读的名称。 |
operating_status |
body |
字符串 |
资源的运行状态。请参阅 运行状态码。 |
position |
body |
整数 |
此策略在监听器上的位置。位置从 1 开始。 |
project_id |
body |
字符串 |
拥有此资源的项目的 ID。 |
provisioning_status |
body |
字符串 |
资源的配置状态。请参阅 配置状态码。 |
redirect_http_code |
body |
整数 |
匹配此策略的请求将使用指定的 HTTP 响应码重定向到指定的 URL 或前缀 URL。当 版本 2.9 新增 |
redirect_pool_id |
body |
uuid |
匹配此策略的请求将重定向到此 ID 的池。仅当 |
redirect_prefix |
body |
字符串 |
匹配此策略的请求将重定向到此前缀 URL。仅当 |
redirect_url |
body |
字符串 |
匹配此策略的请求将重定向到此 URL。仅当 |
rules |
body |
数组 |
关联的 L7 规则 ID 列表。 |
tags |
body |
数组 |
分配给资源的简单字符串列表。 版本 2.5 新增 |
updated_at |
body |
字符串 |
上次更新资源的 UTC 日期和时间戳。 |
响应示例¶
{
"l7policy":
{
"listener_id": "023f2e34-7806-443b-bfae-16c324569a3d",
"description": "Redirect requests to example.com",
"admin_state_up": true,
"rules": [
{
"id": "efd6a3f8-73bf-47f0-8ae6-503ebda57372"
}
],
"created_at": "2017-06-24T23:25:14",
"provisioning_status": "PENDING_UPDATE",
"updated_at": "2017-06-24T23:30:05",
"redirect_http_code": 301,
"redirect_pool_id": null,
"redirect_prefix": null,
"redirect_url": "http://www.example.com",
"action": "REDIRECT_TO_URL",
"position": 1,
"project_id": "e3cd678b11784734bc366148aa37580e",
"id": "8a1412f0-4c32-4257-8b07-af4770b604fd",
"operating_status": "ONLINE",
"name": "redirect-example.com",
"tags": ["updated_tag"]
}
}
从项目中移除 L7 策略及其关联配置。
API 将立即清除任何和所有配置数据,具体取决于配置设置。您无法恢复它。
成功¶
代码 |
原因 |
|---|---|
204 - No Content |
请求已满足,但服务未返回任何内容。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
由于凭据无效,访问被拒绝。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
409 - Conflict |
此资源有一个正在进行的操作,与此请求冲突。 |
500 - 内部服务器错误 |
服务出现问题,导致无法满足请求。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
l7policy_id |
路径 |
uuid |
要查询的 L7 策略的 ID。 |
Curl 示例¶
curl -X DELETE -H "X-Auth-Token: <token>" http://198.51.100.10:9876/v2/lbaas/l7policies/8a1412f0-4c32-4257-8b07-af4770b604fd
响应¶
成功的 DELETE 请求没有响应正文内容。
L7 规则¶
列出项目所有 L7 规则。
使用 fields 查询参数来控制响应体中返回的字段。此外,您还可以使用查询字符串参数过滤结果。有关信息,请参阅 过滤和列选择。
管理员用户可以指定一个与自己的不同的项目 ID 来列出其他项目的 L7 策略。
列表可能为空。
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
由于凭据无效,访问被拒绝。 |
500 - 内部服务器错误 |
服务出现问题,导致无法满足请求。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
fields (可选) |
查询 |
字符串 |
您希望服务器返回的字段。如果未指定 |
l7policy_id |
路径 |
uuid |
要查询的 L7 策略的 ID。 |
project_id (可选) |
查询 |
字符串 |
要查询的项目 ID。 |
Curl 示例¶
curl -X GET -H "X-Auth-Token: <token>" http://198.51.100.10:9876/v2/lbaas/l7policies/8a1412f0-4c32-4257-8b07-af4770b604fd/rules
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
admin_state_up |
body |
布尔值 |
资源的管理员状态,即启用( |
compare_type |
body |
字符串 |
L7 规则的比较类型。可以是 |
created_at |
body |
字符串 |
资源创建的 UTC 日期和时间戳。 |
id |
body |
uuid |
L7 规则的 ID。 |
invert |
body |
布尔值 |
如果为 |
key |
body |
字符串 |
用于比较的键。例如,要评估的 cookie 名称。 |
operating_status |
body |
字符串 |
资源的运行状态。请参阅 运行状态码。 |
project_id |
body |
字符串 |
拥有此资源的项目的 ID。 |
provisioning_status |
body |
字符串 |
资源的配置状态。请参阅 配置状态码。 |
tags |
body |
数组 |
分配给资源的简单字符串列表。 版本 2.5 新增 |
type |
body |
字符串 |
L7 规则类型。可以是 |
updated_at |
body |
字符串 |
上次更新资源的 UTC 日期和时间戳。 |
value |
body |
字符串 |
用于比较的值。例如,要比较的文件类型。 |
响应示例¶
{
"rules": [
{
"created_at": "2017-06-27T15:52:27",
"compare_type": "REGEX",
"provisioning_status": "ACTIVE",
"invert": false,
"admin_state_up": true,
"updated_at": "2017-06-27T15:52:28",
"value": "/images*",
"key": null,
"project_id": "e3cd678b11784734bc366148aa37580e",
"type": "PATH",
"id": "16621dbb-a736-4888-a57a-3ecd53df784c",
"operating_status": "ONLINE",
"tags": ["test_tag"]
}
]
}
创建 L7 规则。
此操作通过使用您在请求对象中定义的配置来预配新的 L7 规则。API 验证请求并开始预配过程后,API 将返回一个包含唯一 ID 和 L7 规则预配状态的响应对象。
在响应中,L7 规则的 provisioning status 为 ACTIVE、PENDING_CREATE 或 ERROR。
如果状态为 PENDING_CREATE,请发出 GET 请求 /v2/lbaas/l7policies/{l7policy_id}/rules/{l7rule_id} 来查看预配操作的进度。当 L7 规则状态更改为 ACTIVE 时,表示 L7 规则已成功预配并可进行进一步配置。
如果 API 由于数据不足或数据无效而无法满足请求,则服务将返回 HTTP Bad Request (400) 响应代码,并在响应体中提供失败信息。验证错误要求您纠正错误并重新提交请求。
与给定策略关联的所有规则都会逻辑上 AND 起来。请求必须匹配策略的所有规则才能匹配该策略。
如果您需要表达规则之间的逻辑 OR 操作,可以通过创建具有相同操作的多个策略来实现。
成功¶
代码 |
原因 |
|---|---|
201 - 已创建 |
请求已完成,并创建了新资源。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
由于凭据无效,访问被拒绝。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
409 - Conflict |
此资源有一个正在进行的操作,与此请求冲突。 |
500 - 内部服务器错误 |
服务出现问题,导致无法满足请求。 |
503 - 服务不可用 |
服务现在无法处理请求。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
admin_state_up (可选) |
body |
布尔值 |
资源的管理员状态,即启用( |
compare_type |
body |
字符串 |
L7 规则的比较类型。可以是 |
invert (可选) |
body |
布尔值 |
如果为 |
key (可选) |
body |
字符串 |
用于比较的键。例如,要评估的 cookie 名称。 |
l7policy_id |
路径 |
uuid |
要查询的 L7 策略的 ID。 |
project_id (可选) |
body |
字符串 |
拥有此资源的项目的 ID。 |
tags (可选) |
body |
数组 |
分配给资源的简单字符串列表。 版本 2.5 新增 |
type |
body |
字符串 |
L7 规则类型。可以是 |
value |
body |
字符串 |
用于比较的值。例如,要比较的文件类型。 |
请求示例¶
{
"rule": {
"compare_type": "REGEX",
"invert": false,
"type": "PATH",
"value": "/images*",
"admin_state_up": true,
"tags": ["test_tag"]
}
}
Curl 示例¶
curl -X POST -H "Content-Type: application/json" -H "X-Auth-Token: <token>" -d '{"rule":{"compare_type":"REGEX","invert":false,"type":"PATH","value":"/images*","admin_state_up":true,"tags":["test_tag"]}}' http://198.51.100.10:9876/v2/lbaas/l7policies/8a1412f0-4c32-4257-8b07-af4770b604fd/rules
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
admin_state_up |
body |
布尔值 |
资源的管理员状态,即启用( |
compare_type |
body |
字符串 |
L7 规则的比较类型。可以是 |
created_at |
body |
字符串 |
资源创建的 UTC 日期和时间戳。 |
id |
body |
uuid |
L7 规则的 ID。 |
invert |
body |
布尔值 |
如果为 |
key |
body |
字符串 |
用于比较的键。例如,要评估的 cookie 名称。 |
operating_status |
body |
字符串 |
资源的运行状态。请参阅 运行状态码。 |
project_id |
body |
字符串 |
拥有此资源的项目的 ID。 |
provisioning_status |
body |
字符串 |
资源的配置状态。请参阅 配置状态码。 |
tags |
body |
数组 |
分配给资源的简单字符串列表。 版本 2.5 新增 |
type |
body |
字符串 |
L7 规则类型。可以是 |
updated_at |
body |
字符串 |
上次更新资源的 UTC 日期和时间戳。 |
value |
body |
字符串 |
用于比较的值。例如,要比较的文件类型。 |
响应示例¶
{
"rule":
{
"created_at": "2017-06-27T15:52:27",
"compare_type": "REGEX",
"provisioning_status": "PENDING_CREATE",
"invert": false,
"admin_state_up": true,
"updated_at": "2017-06-27T15:52:28",
"value": "/images*",
"key": null,
"project_id": "e3cd678b11784734bc366148aa37580e",
"type": "PATH",
"id": "16621dbb-a736-4888-a57a-3ecd53df784c",
"operating_status": "OFFLINE",
"tags": ["test_tag"]
}
}
显示 L7 规则的详细信息。
如果您不是管理员用户,并且 L7 规则对象不属于您的项目,则服务将返回 HTTP Forbidden (403) 响应代码。
此操作不需要请求正文。
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
401 - 未授权 |
由于凭据无效,访问被拒绝。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
500 - 内部服务器错误 |
服务出现问题,导致无法满足请求。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
fields (可选) |
查询 |
字符串 |
您希望服务器返回的字段。如果未指定 |
l7policy_id |
路径 |
uuid |
要查询的 L7 策略的 ID。 |
l7rule_id |
路径 |
uuid |
要查询的 L7 规则的 ID。 |
Curl 示例¶
curl -X GET -H "X-Auth-Token: <token>" http://198.51.100.10:9876/v2/lbaas/l7policies/8a1412f0-4c32-4257-8b07-af4770b604fd/rules/16621dbb-a736-4888-a57a-3ecd53df784c
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
admin_state_up |
body |
布尔值 |
资源的管理员状态,即启用( |
compare_type |
body |
字符串 |
L7 规则的比较类型。可以是 |
created_at |
body |
字符串 |
资源创建的 UTC 日期和时间戳。 |
id |
body |
uuid |
L7 规则的 ID。 |
invert |
body |
布尔值 |
如果为 |
key |
body |
字符串 |
用于比较的键。例如,要评估的 cookie 名称。 |
operating_status |
body |
字符串 |
资源的运行状态。请参阅 运行状态码。 |
project_id |
body |
字符串 |
拥有此资源的项目的 ID。 |
provisioning_status |
body |
字符串 |
资源的配置状态。请参阅 配置状态码。 |
tags |
body |
数组 |
分配给资源的简单字符串列表。 版本 2.5 新增 |
type |
body |
字符串 |
L7 规则类型。可以是 |
updated_at |
body |
字符串 |
上次更新资源的 UTC 日期和时间戳。 |
value |
body |
字符串 |
用于比较的值。例如,要比较的文件类型。 |
响应示例¶
{
"rule":
{
"created_at": "2017-06-27T15:52:27",
"compare_type": "REGEX",
"provisioning_status": "ACTIVE",
"invert": false,
"admin_state_up": true,
"updated_at": "2017-06-27T15:52:28",
"value": "/images*",
"key": null,
"project_id": "e3cd678b11784734bc366148aa37580e",
"type": "PATH",
"id": "16621dbb-a736-4888-a57a-3ecd53df784c",
"operating_status": "ONLINE",
"tags": ["test_tag"]
}
}
更新 L7 规则。
如果请求有效,服务将返回 Accepted (202) 响应代码。要确认更新,请检查 L7 规则的预配状态是否为 ACTIVE。如果状态为 PENDING_UPDATE,请使用 GET 操作轮询 L7 规则对象以了解更改。
此操作将返回更新后的 L7 规则对象,其预配状态为 ACTIVE、PENDING_UPDATE 或 ERROR。
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
由于凭据无效,访问被拒绝。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
409 - Conflict |
此资源有一个正在进行的操作,与此请求冲突。 |
500 - 内部服务器错误 |
服务出现问题,导致无法满足请求。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
admin_state_up (可选) |
body |
布尔值 |
资源的管理员状态,即启用( |
compare_type (可选) |
body |
字符串 |
L7 规则的比较类型。可以是 |
invert (可选) |
body |
布尔值 |
如果为 |
key (可选) |
body |
字符串 |
用于比较的键。例如,要评估的 cookie 名称。 |
l7policy_id |
路径 |
uuid |
要查询的 L7 策略的 ID。 |
l7rule_id |
路径 |
uuid |
要查询的 L7 规则的 ID。 |
tags (可选) |
body |
数组 |
分配给资源的简单字符串列表。 版本 2.5 新增 |
type (可选) |
body |
字符串 |
L7 规则类型。可以是 |
value (可选) |
body |
字符串 |
用于比较的值。例如,要比较的文件类型。 |
请求示例¶
{
"rule": {
"compare_type": "REGEX",
"invert": true,
"type": "PATH",
"value": "/images/special*",
"admin_state_up": true,
"tags": ["updated_tag"]
}
}
Curl 示例¶
curl -X PUT -H "Content-Type: application/json" -H "X-Auth-Token: <token>" -d '{"rule":{"compare_type":"REGEX","invert":true,"type":"PATH","value":"/images/special*","admin_state_up":true,"tags":["updated_tag"]}}' http://198.51.100.10:9876/v2/lbaas/l7policies/8a1412f0-4c32-4257-8b07-af4770b604fd/rules/16621dbb-a736-4888-a57a-3ecd53df784c
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
admin_state_up |
body |
布尔值 |
资源的管理员状态,即启用( |
compare_type |
body |
字符串 |
L7 规则的比较类型。可以是 |
created_at |
body |
字符串 |
资源创建的 UTC 日期和时间戳。 |
id |
body |
uuid |
L7 规则的 ID。 |
invert |
body |
布尔值 |
如果为 |
key |
body |
字符串 |
用于比较的键。例如,要评估的 cookie 名称。 |
operating_status |
body |
字符串 |
资源的运行状态。请参阅 运行状态码。 |
project_id |
body |
字符串 |
拥有此资源的项目的 ID。 |
provisioning_status |
body |
字符串 |
资源的配置状态。请参阅 配置状态码。 |
tags |
body |
数组 |
分配给资源的简单字符串列表。 版本 2.5 新增 |
type |
body |
字符串 |
L7 规则类型。可以是 |
updated_at |
body |
字符串 |
上次更新资源的 UTC 日期和时间戳。 |
value |
body |
字符串 |
用于比较的值。例如,要比较的文件类型。 |
响应示例¶
{
"rule":
{
"created_at": "2017-06-27T15:52:27",
"compare_type": "REGEX",
"provisioning_status": "PENDING_UPDATE",
"invert": true,
"admin_state_up": true,
"updated_at": "2017-06-27T15:58:28",
"value": "/images/special*",
"key": null,
"project_id": "e3cd678b11784734bc366148aa37580e",
"type": "PATH",
"id": "16621dbb-a736-4888-a57a-3ecd53df784c",
"operating_status": "ONLINE",
"tags": ["updated_tag"]
}
}
从项目中移除 L7 规则及其关联配置。
API 将立即清除任何和所有配置数据,具体取决于配置设置。您无法恢复它。
成功¶
代码 |
原因 |
|---|---|
204 - No Content |
请求已满足,但服务未返回任何内容。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
由于凭据无效,访问被拒绝。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
409 - Conflict |
此资源有一个正在进行的操作,与此请求冲突。 |
500 - 内部服务器错误 |
服务出现问题,导致无法满足请求。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
l7policy_id |
路径 |
uuid |
要查询的 L7 策略的 ID。 |
l7rule_id |
路径 |
uuid |
要查询的 L7 规则的 ID。 |
Curl 示例¶
curl -X DELETE -H "X-Auth-Token: <token>" http://198.51.100.10:9876/v2/lbaas/l7policies/8a1412f0-4c32-4257-8b07-af4770b604fd/rules/16621dbb-a736-4888-a57a-3ecd53df784c
响应¶
成功的 DELETE 请求没有响应正文内容。
配额¶
列出项目所有配额。
使用 fields 查询参数来控制响应体中返回的字段。此外,您还可以使用查询字符串参数过滤结果。有关信息,请参阅 过滤和列选择。
管理员用户可以指定一个与自己的不同的项目 ID 来列出其他项目的配额。
如果配额显示为 null,则表示配额正在使用部署的默认配额设置。
配额 -1 表示配额不受限制。
列表可能为空。
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
由于凭据无效,访问被拒绝。 |
500 - 内部服务器错误 |
服务出现问题,导致无法满足请求。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
fields (可选) |
查询 |
字符串 |
您希望服务器返回的字段。如果未指定 |
project_id (可选) |
查询 |
字符串 |
要查询的项目 ID。 |
Curl 示例¶
curl -X GET -H "X-Auth-Token: <token>" http://198.51.100.10:9876/v2/lbaas/quotas?project_id=e3cd678b11784734bc366148aa37580e
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
healthmonitor |
body |
整数 |
配置的健康监视器配额限制。设置为 |
l7policy |
body |
整数 |
配置的 l7 策略配额限制。设置为 |
l7rule |
body |
整数 |
配置的 l7 规则配额限制。设置为 |
listener |
body |
整数 |
配置的监听器配额限制。设置为 |
loadbalancer |
body |
整数 |
配置的负载均衡器配额限制。设置为 |
member(成员) |
body |
整数 |
配置的成员配额限制。设置为 |
pool |
body |
整数 |
配置的池配额限制。设置为 |
project_id |
body |
字符串 |
拥有此资源的项目的 ID。 |
响应示例¶
{
"quotas": [
{
"loadbalancer": 5,
"member": 50,
"healthmonitor": -1,
"listener": null,
"project_id": "e3cd678b11784734bc366148aa37580e",
"pool": null,
"l7policy": 3,
"l7rule": null
}
]
}
显示部署配置的配额默认值。
配额 -1 表示配额不受限制。
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
由于凭据无效,访问被拒绝。 |
500 - 内部服务器错误 |
服务出现问题,导致无法满足请求。 |
请求¶
显示配额默认值 API 没有请求参数。
Curl 示例¶
curl -X GET -H "X-Auth-Token: <token>" http://198.51.100.10:9876/v2/lbaas/quotas/defaults
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
healthmonitor |
body |
整数 |
配置的健康监视器配额限制。设置为 |
l7policy |
body |
整数 |
配置的 l7 策略配额限制。设置为 |
l7rule |
body |
整数 |
配置的 l7 规则配额限制。设置为 |
listener |
body |
整数 |
配置的监听器配额限制。设置为 |
loadbalancer |
body |
整数 |
配置的负载均衡器配额限制。设置为 |
member(成员) |
body |
整数 |
配置的成员配额限制。设置为 |
pool |
body |
整数 |
配置的池配额限制。设置为 |
响应示例¶
{
"quota": {
"loadbalancer": 50,
"listener": -1,
"member": -1,
"pool": -1,
"healthmonitor": -1,
"l7policy": -1,
"l7rule": -1
}
}
显示项目的配额。
使用 fields 查询参数来控制响应体中返回的字段。此外,您还可以使用查询字符串参数过滤结果。有关信息,请参阅 过滤和列选择。
管理员用户可以指定一个与自己的不同的项目 ID 来显示其他项目的配额。
配额 -1 表示配额不受限制。
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
由于凭据无效,访问被拒绝。 |
500 - 内部服务器错误 |
服务出现问题,导致无法满足请求。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
fields (可选) |
查询 |
字符串 |
您希望服务器返回的字段。如果未指定 |
project_id |
路径 |
字符串 |
要查询的项目 ID。 |
Curl 示例¶
curl -X GET -H "X-Auth-Token: <token>" http://198.51.100.10:9876/v2/lbaas/quotas/e3cd678b11784734bc366148aa37580e
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
healthmonitor |
body |
整数 |
配置的健康监视器配额限制。设置为 |
l7policy |
body |
整数 |
配置的 l7 策略配额限制。设置为 |
l7rule |
body |
整数 |
配置的 l7 规则配额限制。设置为 |
listener |
body |
整数 |
配置的监听器配额限制。设置为 |
loadbalancer |
body |
整数 |
配置的负载均衡器配额限制。设置为 |
member(成员) |
body |
整数 |
配置的成员配额限制。设置为 |
pool |
body |
整数 |
配置的池配额限制。设置为 |
响应示例¶
{
"quota": {
"loadbalancer": 5,
"listener": -1,
"member": 50,
"pool": -1,
"healthmonitor": -1,
"l7policy": 20,
"l7rule": -1
}
}
更新项目的配额。
如果请求有效,服务将返回 Accepted (202) 响应代码。
此操作将返回更新后的配额对象。
如果配额指定为 null,则配额将使用部署的默认配额设置。
指定配额 -1 表示配额不受限制。
指定配额 0 表示项目无法创建该资源。
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
由于凭据无效,访问被拒绝。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
409 - Conflict |
此资源有一个正在进行的操作,与此请求冲突。 |
500 - 内部服务器错误 |
服务出现问题,导致无法满足请求。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
healthmonitor (可选) |
body |
整数 |
配置的健康监视器配额限制。设置为 |
l7policy (可选) |
body |
整数 |
配置的 l7 策略配额限制。设置为 |
l7rule (可选) |
body |
整数 |
配置的 l7 规则配额限制。设置为 |
listener |
body |
整数 |
配置的监听器配额限制。设置为 |
loadbalancer |
body |
整数 |
配置的负载均衡器配额限制。设置为 |
member(成员) |
body |
整数 |
配置的成员配额限制。设置为 |
pool |
body |
整数 |
配置的池配额限制。设置为 |
project_id |
路径 |
字符串 |
要查询的项目 ID。 |
请求示例¶
{
"quota": {
"loadbalancer": 10,
"listener": -1,
"member": 50,
"pool": -1,
"healthmonitor": -1,
"l7policy": 15,
"l7rule": 25
}
}
Curl 示例¶
curl -X PUT -H "Content-Type: application/json" -H "X-Auth-Token: <token>" -d '{"quota":{"loadbalancer":10,"listener":-1,"member":50,"pool":-1,"healthmonitor":-1,"l7policy":15,"l7rule":25}}' http://198.51.100.10:9876/v2/lbaas/quotas/e3cd678b11784734bc366148aa37580e
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
healthmonitor |
body |
整数 |
配置的健康监视器配额限制。设置为 |
l7policy |
body |
整数 |
配置的 l7 策略配额限制。设置为 |
l7rule |
body |
整数 |
配置的 l7 规则配额限制。设置为 |
listener |
body |
整数 |
配置的监听器配额限制。设置为 |
loadbalancer |
body |
整数 |
配置的负载均衡器配额限制。设置为 |
member(成员) |
body |
整数 |
配置的成员配额限制。设置为 |
pool |
body |
整数 |
配置的池配额限制。设置为 |
响应示例¶
{
"quota": {
"loadbalancer": 10,
"listener": -1,
"member": 50,
"pool": -1,
"healthmonitor": -1,
"l7policy": 15,
"l7rule": 25
}
}
将项目配额重置为使用部署的默认配额。
成功¶
代码 |
原因 |
|---|---|
204 - No Content |
请求已满足,但服务未返回任何内容。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
由于凭据无效,访问被拒绝。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
409 - Conflict |
此资源有一个正在进行的操作,与此请求冲突。 |
500 - 内部服务器错误 |
服务出现问题,导致无法满足请求。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
要查询的项目 ID。 |
Curl 示例¶
curl -X DELETE -H "X-Auth-Token: <token>" http://198.51.100.10:9876/v2/lbaas/quotas/e3cd678b11784734bc366148aa37580e
响应¶
成功的 DELETE 请求没有响应正文内容。
提供商¶
列出所有启用的提供商驱动程序。
使用 fields 查询参数来控制响应体中返回的字段。
列表可能为空。
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
由于凭据无效,访问被拒绝。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
500 - 内部服务器错误 |
服务出现问题,导致无法满足请求。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
fields (可选) |
查询 |
字符串 |
您希望服务器返回的字段。如果未指定 |
Curl 示例¶
curl -X GET -H "X-Auth-Token: <token>" http://198.51.100.10:9876/v2/lbaas/providers
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
name |
body |
字符串 |
提供商名称。 |
description |
body |
字符串 |
提供商描述。 |
响应示例¶
{
"providers": [
{
"name": "amphora",
"description": "The Octavia Amphora driver."
},
{
"name": "octavia",
"description": "Deprecated alias of the Octavia Amphora driver."
}
]
}
显示提供商驱动程序的 flavor 功能。这些是可在 Octavia flavor 中配置的提供商驱动程序的功能。此 API 返回一个字典列表,其中包含提供商每个 flavor 功能的名称和描述。
列表可能为空,提供商驱动程序可能未实现此功能。
版本 2.6 新增
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
由于凭据无效,访问被拒绝。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
500 - 内部服务器错误 |
服务出现问题,导致无法满足请求。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
fields (可选) |
查询 |
字符串 |
您希望服务器返回的字段。如果未指定 |
provider |
路径 |
字符串 |
要查询的提供商。 |
Curl 示例¶
curl -X GET -H "X-Auth-Token: <token>" http://198.51.100.10:9876/v2/lbaas/providers/amphora/flavor_capabilities
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
flavor_capabilities |
body |
对象 |
提供商的 flavor 功能字典对象。 |
name |
body |
字符串 |
提供商 flavor 功能的名称。 |
description |
body |
字符串 |
提供商 flavor 功能的描述。 |
响应示例¶
{
"flavor_capabilities": [
{
"name": "loadbalancer_topology",
"description": "The load balancer topology. One of: SINGLE - One amphora per load balancer. ACTIVE_STANDBY - Two amphora per load balancer."
}
]
}
显示提供商驱动程序的可用区功能。这些是可在 Octavia 可用区中配置的提供商驱动程序的功能。此 API 返回一个字典列表,其中包含提供商每个可用区功能的功能名称和描述。
列表可能为空,提供商驱动程序可能未实现此功能。
版本 2.14 新增
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
由于凭据无效,访问被拒绝。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
500 - 内部服务器错误 |
服务出现问题,导致无法满足请求。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
fields (可选) |
查询 |
字符串 |
您希望服务器返回的字段。如果未指定 |
provider |
路径 |
字符串 |
要查询的提供商。 |
Curl 示例¶
curl -X GET -H "X-Auth-Token: <token>" http://198.51.100.10:9876/v2/lbaas/providers/amphora/availability_zone_capabilities
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
availability_zone_capabilities |
body |
对象 |
提供商可用区功能字典对象。 |
name |
body |
字符串 |
提供商可用区功能的名称。 |
description |
body |
字符串 |
提供商可用区功能的描述。 |
响应示例¶
{
"availability_zone_capabilities": [
{
"name": "compute_zone",
"description": "The compute availability zone."
},
{
"name": "volume_zone",
"description": "The volume availability zone."
}
]
}
规格¶
列出所有可用的 flavors。
使用 fields 查询参数来控制响应体中返回的字段。此外,您还可以使用查询字符串参数过滤结果。有关信息,请参阅 过滤和列选择。
列表可能为空。
版本 2.6 新增
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
由于凭据无效,访问被拒绝。 |
500 - 内部服务器错误 |
服务出现问题,导致无法满足请求。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
fields (可选) |
查询 |
字符串 |
您希望服务器返回的字段。如果未指定 |
Curl 示例¶
curl -X GET -H "X-Auth-Token: <token>" http://198.51.100.10:9876/v2.0/lbaas/flavors
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
description |
body |
字符串 |
资源的易于阅读的描述。 |
enabled |
body |
布尔值 |
资源是否可供使用。 |
flavor_profile_id |
body |
uuid |
Flavor profile 的 ID。 |
flavors |
body |
数组 |
一个 |
id |
body |
uuid |
flavor 的 ID。 |
name |
body |
字符串 |
资源的易于阅读的名称。 |
响应示例¶
{
"flavors": [
{
"id": "8f94060c-8d5b-4472-9cfd-e8a2b909481d",
"name": "Basic",
"description": "A basic standalone Octavia load balancer.",
"enabled": true,
"flavor_profile_id": "5712097e-0092-45dc-bff0-ab68b61ad51a"
}
]
}
创建flavor。
如果 API 由于数据不足或数据无效而无法满足请求,则服务将返回 HTTP Bad Request (400) 响应代码,并在响应体中提供失败信息。验证错误要求您纠正错误并重新提交请求。
如果您不是管理员用户,则服务将返回 HTTP Forbidden (403) 响应代码。
版本 2.6 新增
成功¶
代码 |
原因 |
|---|---|
201 - 已创建 |
请求已完成,并创建了新资源。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
由于凭据无效,访问被拒绝。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
500 - 内部服务器错误 |
服务出现问题,导致无法满足请求。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
description (可选) |
body |
字符串 |
资源的易于阅读的描述。 |
enabled(可选) |
body |
布尔值 |
资源是否可供使用。默认为 True。 |
flavor |
body |
对象 |
一个 flavor 对象。 |
flavor_profile_id |
body |
uuid |
Flavor profile 的 ID。 |
name |
body |
字符串 |
资源的易于阅读的名称。 |
请求示例¶
{
"flavor": {
"name": "Basic",
"description": "A basic standalone Octavia load balancer.",
"enabled": true,
"flavor_profile_id": "5712097e-0092-45dc-bff0-ab68b61ad51a"
}
}
Curl 示例¶
curl -X POST -H "Content-Type: application/json" -H "X-Auth-Token: <token>" -d '{"flavor":{"name":"Basic","description":"A basic standalone Octavia load balancer.","enabled":true,"flavor_profile_id":"5712097e-0092-45dc-bff0-ab68b61ad51a"}}' http://198.51.100.10:9876/v2.0/lbaas/flavors
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
description |
body |
字符串 |
资源的易于阅读的描述。 |
enabled |
body |
布尔值 |
资源是否可供使用。 |
flavor_profile_id |
body |
uuid |
Flavor profile 的 ID。 |
flavor |
body |
对象 |
一个 flavor 对象。 |
id |
body |
uuid |
flavor 的 ID。 |
name |
body |
字符串 |
资源的易于阅读的名称。 |
响应示例¶
{
"flavor": {
"id": "8f94060c-8d5b-4472-9cfd-e8a2b909481d",
"name": "Basic",
"description": "A basic standalone Octavia load balancer.",
"enabled": true,
"flavor_profile_id": "5712097e-0092-45dc-bff0-ab68b61ad51a"
}
}
显示 flavor 的详细信息。
使用 fields 查询参数来控制响应体中返回的字段。此外,您还可以使用查询字符串参数过滤结果。有关信息,请参阅 过滤和列选择。
此操作不需要请求正文。
版本 2.6 新增
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
401 - 未授权 |
由于凭据无效,访问被拒绝。 |
404 - Not Found |
找不到请求的资源。 |
500 - 内部服务器错误 |
服务出现问题,导致无法满足请求。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
fields (可选) |
查询 |
字符串 |
您希望服务器返回的字段。如果未指定 |
flavor_id |
路径 |
uuid |
要查询的 flavor 的 ID。 |
Curl 示例¶
curl -X GET -H "X-Auth-Token: <token>" http://198.51.100.10:9876/v2.0/lbaas/flavors/8f94060c-8d5b-4472-9cfd-e8a2b909481d
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
description |
body |
字符串 |
资源的易于阅读的描述。 |
enabled |
body |
布尔值 |
资源是否可供使用。 |
flavor_profile_id |
body |
uuid |
Flavor profile 的 ID。 |
flavor |
body |
对象 |
一个 flavor 对象。 |
id |
body |
uuid |
flavor 的 ID。 |
name |
body |
字符串 |
资源的易于阅读的名称。 |
响应示例¶
{
"flavor": {
"id": "8f94060c-8d5b-4472-9cfd-e8a2b909481d",
"name": "Basic",
"description": "A basic standalone Octavia load balancer.",
"enabled": true,
"flavor_profile_id": "5712097e-0092-45dc-bff0-ab68b61ad51a"
}
}
更新 flavor。
如果您不是管理员用户,则服务将返回 HTTP Forbidden (403) 响应代码。
版本 2.6 新增
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
由于凭据无效,访问被拒绝。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
500 - 内部服务器错误 |
服务出现问题,导致无法满足请求。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
description (可选) |
body |
字符串 |
资源的易于阅读的描述。 |
enabled(可选) |
body |
布尔值 |
资源是否可供使用。默认为 True。 |
flavor |
body |
对象 |
一个 flavor 对象。 |
flavor_id |
路径 |
uuid |
要查询的 flavor 的 ID。 |
name (可选) |
body |
字符串 |
资源的易于阅读的名称。 |
请求示例¶
{
"flavor": {
"name": "Basic",
"description": "A basic standalone Octavia load balancer.",
"enabled": false
}
}
Curl 示例¶
curl -X PUT -H "Content-Type: application/json" -H "X-Auth-Token: <token>" -d '{"flavor":{"name":"Basic","description":"A basic standalone Octavia load balancer.","enabled":false}}' http://198.51.100.10:9876/v2.0/lbaas/flavors/8f94060c-8d5b-4472-9cfd-e8a2b909481d
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
description |
body |
字符串 |
资源的易于阅读的描述。 |
enabled |
body |
布尔值 |
资源是否可供使用。 |
flavor_profile_id |
body |
uuid |
Flavor profile 的 ID。 |
flavor |
body |
对象 |
一个 flavor 对象。 |
id |
body |
uuid |
flavor 的 ID。 |
name |
body |
字符串 |
资源的易于阅读的名称。 |
响应示例¶
{
"flavor": {
"id": "8f94060c-8d5b-4472-9cfd-e8a2b909481d",
"name": "Basic",
"description": "A basic standalone Octavia load balancer.",
"enabled": false,
"flavor_profile_id": "5712097e-0092-45dc-bff0-ab68b61ad51a"
}
}
移除 flavor 及其关联配置。
如果任何负载均衡器正在使用此 flavor,则服务将返回 HTTP Conflict (409) 响应代码。
如果您不是管理员用户,则服务将返回 HTTP Forbidden (403) 响应代码。
版本 2.6 新增
成功¶
代码 |
原因 |
|---|---|
204 - No Content |
请求已满足,但服务未返回任何内容。 |
错误¶
代码 |
原因 |
|---|---|
401 - 未授权 |
由于凭据无效,访问被拒绝。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
409 - Conflict |
此资源有一个正在进行的操作,与此请求冲突。 |
500 - 内部服务器错误 |
服务出现问题,导致无法满足请求。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
flavor_id |
路径 |
uuid |
要查询的 flavor 的 ID。 |
Curl 示例¶
curl -X DELETE -H "X-Auth-Token: <token>" http://198.51.100.10:9876/v2.0/lbaas/flavors/8f94060c-8d5b-4472-9cfd-e8a2b909481d
响应¶
成功的 DELETE 请求没有响应正文内容。
Flavor 配置文件¶
列出所有可用的 flavor 配置文件。
使用 fields 查询参数来控制响应体中返回的字段。此外,您还可以使用查询字符串参数过滤结果。有关信息,请参阅 过滤和列选择。
如果您不是管理员用户,则服务将返回 HTTP Forbidden (403) 响应代码。
列表可能为空。
版本 2.6 新增
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
由于凭据无效,访问被拒绝。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
500 - 内部服务器错误 |
服务出现问题,导致无法满足请求。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
fields (可选) |
查询 |
字符串 |
您希望服务器返回的字段。如果未指定 |
Curl 示例¶
curl -X GET -H "X-Auth-Token: <token>" http://198.51.100.10:9876/v2.0/lbaas/flavorprofiles
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
flavor_data |
body |
字符串 |
包含 flavor 元数据的 JSON 字符串。 |
flavorprofiles |
body |
数组 |
一个 |
id |
body |
uuid |
Flavor profile 的 ID。 |
name |
body |
字符串 |
资源的易于阅读的名称。 |
provider_name |
body |
字符串 |
提供商名称。 |
响应示例¶
{
"flavorprofiles": [
{
"id": "5712097e-0092-45dc-bff0-ab68b61ad51a",
"name": "amphora-act-stdby",
"provider_name": "amphora",
"flavor_data": "{\"loadbalancer_topology\": \"ACTIVE_STANDBY\"}"
}
]
}
创建 flavor 配置文件。
如果 API 由于数据不足或数据无效而无法满足请求,则服务将返回 HTTP Bad Request (400) 响应代码,并在响应体中提供失败信息。验证错误要求您纠正错误并重新提交请求。
如果您不是管理员用户,则服务将返回 HTTP Forbidden (403) 响应代码。
版本 2.6 新增
成功¶
代码 |
原因 |
|---|---|
201 - 已创建 |
请求已完成,并创建了新资源。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
由于凭据无效,访问被拒绝。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
500 - 内部服务器错误 |
服务出现问题,导致无法满足请求。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
flavor_data |
body |
字符串 |
包含 flavor 元数据的 JSON 字符串。 |
flavorprofile |
body |
对象 |
一个 |
name |
body |
字符串 |
资源的易于阅读的名称。 |
provider_name |
body |
字符串 |
提供商名称。 |
请求示例¶
{
"flavorprofile":
{
"name": "amphora-act-stdby",
"provider_name": "amphora",
"flavor_data": "{\"loadbalancer_topology\": \"ACTIVE_STANDBY\"}"
}
}
Curl 示例¶
curl -X POST -H "Content-Type: application/json" -H "X-Auth-Token: <token>" -d '{"flavorprofile":{"name":"amphora-act-stdby","provider_name":"amphora","flavor_data":"{\"loadbalancer_topology\": \"ACTIVE_STANDBY\"}"}}' http://198.51.100.10:9876/v2.0/lbaas/flavorprofiles
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
flavor_data |
body |
字符串 |
包含 flavor 元数据的 JSON 字符串。 |
flavorprofile |
body |
对象 |
一个 |
id |
body |
uuid |
Flavor profile 的 ID。 |
name |
body |
字符串 |
资源的易于阅读的名称。 |
provider_name |
body |
字符串 |
提供商名称。 |
响应示例¶
{
"flavorprofile":
{
"id": "5712097e-0092-45dc-bff0-ab68b61ad51a",
"name": "amphora-act-stdby",
"provider_name": "amphora",
"flavor_data": "{\"loadbalancer_topology\": \"ACTIVE_STANDBY\"}"
}
}
显示 flavor 详细信息的详细信息。
使用 fields 查询参数来控制响应体中返回的字段。此外,您还可以使用查询字符串参数过滤结果。有关信息,请参阅 过滤和列选择。
如果您不是管理员用户,则服务将返回 HTTP Forbidden (403) 响应代码。
此操作不需要请求正文。
版本 2.6 新增
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
401 - 未授权 |
由于凭据无效,访问被拒绝。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
500 - 内部服务器错误 |
服务出现问题,导致无法满足请求。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
fields (可选) |
查询 |
字符串 |
您希望服务器返回的字段。如果未指定 |
flavorprofile_id |
路径 |
uuid |
要查询的 flavor 配置文件 ID。 |
Curl 示例¶
curl -X GET -H "X-Auth-Token: <token>" http://198.51.100.10:9876/v2.0/lbaas/flavorprofiles/5712097e-0092-45dc-bff0-ab68b61ad51a
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
flavor_data |
body |
字符串 |
包含 flavor 元数据的 JSON 字符串。 |
flavorprofile |
body |
对象 |
一个 |
id |
body |
uuid |
Flavor profile 的 ID。 |
name |
body |
字符串 |
资源的易于阅读的名称。 |
provider_name |
body |
字符串 |
提供商名称。 |
响应示例¶
{
"flavorprofile":
{
"id": "5712097e-0092-45dc-bff0-ab68b61ad51a",
"name": "amphora-act-stdby",
"provider_name": "amphora",
"flavor_data": "{\"loadbalancer_topology\": \"ACTIVE_STANDBY\"}"
}
}
更新 flavor 配置文件。
如果您不是管理员用户,则服务将返回 HTTP Forbidden (403) 响应代码。
版本 2.6 新增
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
由于凭据无效,访问被拒绝。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
500 - 内部服务器错误 |
服务出现问题,导致无法满足请求。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
flavor_data (可选) |
body |
字符串 |
包含 flavor 元数据的 JSON 字符串。 |
flavorprofile |
body |
对象 |
一个 |
flavorprofile_id |
路径 |
uuid |
要查询的 flavor 配置文件 ID。 |
name (可选) |
body |
字符串 |
资源的易于阅读的名称。 |
provider_name (可选) |
body |
字符串 |
提供商名称。 |
请求示例¶
{
"flavorprofile":
{
"name": "amphora-standalone",
"provider_name": "amphora",
"flavor_data": "{\"loadbalancer_topology\": \"SINGLE\"}"
}
}
Curl 示例¶
curl -X PUT -H "Content-Type: application/json" -H "X-Auth-Token: <token>" -d '{"flavorprofile":{"name":"amphora-standalone","provider_name":"amphora","flavor_data":"{\"loadbalancer_topology\": \"SINGLE\"}"}}' http://198.51.100.10:9876/v2.0/lbaas/flavorprofiles/5712097e-0092-45dc-bff0-ab68b61ad51a
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
flavor_data |
body |
字符串 |
包含 flavor 元数据的 JSON 字符串。 |
flavorprofile |
body |
对象 |
一个 |
id |
body |
uuid |
Flavor profile 的 ID。 |
name |
body |
字符串 |
资源的易于阅读的名称。 |
provider_name |
body |
字符串 |
提供商名称。 |
响应示例¶
{
"flavorprofile":
{
"id": "5712097e-0092-45dc-bff0-ab68b61ad51a",
"name": "amphora-standalone",
"provider_name": "amphora",
"flavor_data": "{\"loadbalancer_topology\": \"SINGLE\"}"
}
}
移除 flavor 配置文件及其关联配置。
如果任何 flavor 正在使用此 flavor 配置文件,则服务将返回 HTTP Conflict (409) 响应代码。
如果您不是管理员用户,则服务将返回 HTTP Forbidden (403) 响应代码。
版本 2.6 新增
成功¶
代码 |
原因 |
|---|---|
204 - No Content |
请求已满足,但服务未返回任何内容。 |
错误¶
代码 |
原因 |
|---|---|
401 - 未授权 |
由于凭据无效,访问被拒绝。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
409 - Conflict |
此资源有一个正在进行的操作,与此请求冲突。 |
500 - 内部服务器错误 |
服务出现问题,导致无法满足请求。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
flavorprofile_id |
路径 |
uuid |
要查询的 flavor 配置文件 ID。 |
Curl 示例¶
curl -X DELETE -H "X-Auth-Token: <token>" http://198.51.100.10:9876/v2.0/lbaas/flavorprofiles/5712097e-0092-45dc-bff0-ab68b61ad51a
响应¶
成功的 DELETE 请求没有响应正文内容。
可用区¶
列出所有可用的可用区。
使用 fields 查询参数来控制响应体中返回的字段。此外,您还可以使用查询字符串参数过滤结果。有关信息,请参阅 过滤和列选择。
列表可能为空。
版本 2.14 新增
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
由于凭据无效,访问被拒绝。 |
500 - 内部服务器错误 |
服务出现问题,导致无法满足请求。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
fields (可选) |
查询 |
字符串 |
您希望服务器返回的字段。如果未指定 |
Curl 示例¶
curl -X GET -H "X-Auth-Token: <token>" http://198.51.100.10:9876/v2.0/lbaas/availabilityzones
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
description |
body |
字符串 |
资源的易于阅读的描述。 |
enabled |
body |
布尔值 |
资源是否可供使用。 |
availability_zone_profile_id |
body |
uuid |
可用区配置的 ID。 |
availability_zones |
body |
数组 |
一个 |
name |
body |
字符串 |
资源的易于阅读的名称。 |
响应示例¶
{
"availability_zones": [
{
"name": "my_az",
"description": "My availability zone.",
"enabled": true,
"availability_zone_profile_id": "5712097e-0092-45dc-bff0-ab68b61ad51a"
}
]
}
创建可用区。
如果 API 由于数据不足或数据无效而无法满足请求,则服务将返回 HTTP Bad Request (400) 响应代码,并在响应体中提供失败信息。验证错误要求您纠正错误并重新提交请求。
如果您不是管理员用户,则服务将返回 HTTP Forbidden (403) 响应代码。
版本 2.14 新增
成功¶
代码 |
原因 |
|---|---|
201 - 已创建 |
请求已完成,并创建了新资源。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
由于凭据无效,访问被拒绝。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
500 - 内部服务器错误 |
服务出现问题,导致无法满足请求。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
description (可选) |
body |
字符串 |
资源的易于阅读的描述。 |
enabled(可选) |
body |
布尔值 |
资源是否可供使用。默认为 True。 |
availability_zone |
body |
对象 |
一个可用区对象。 |
availability_zone_profile_id |
body |
uuid |
可用区配置的 ID。 |
name |
body |
字符串 |
资源的易于阅读的名称。 |
请求示例¶
{
"availability_zone": {
"name": "my_az",
"description": "My availability zone.",
"enabled": true,
"availability_zone_profile_id": "5712097e-0092-45dc-bff0-ab68b61ad51a"
}
}
Curl 示例¶
curl -X POST -H "Content-Type: application/json" -H "X-Auth-Token: <token>" -d '{"availability_zone":{"name":"my_az","description":"My availability zone.","enabled":true,"availability_zone_profile_id":"5712097e-0092-45dc-bff0-ab68b61ad51a"}}' http://198.51.100.10:9876/v2.0/lbaas/availabilityzones
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
description |
body |
字符串 |
资源的易于阅读的描述。 |
enabled |
body |
布尔值 |
资源是否可供使用。 |
availability_zone_profile_id |
body |
uuid |
可用区配置的 ID。 |
availability_zone |
body |
对象 |
一个可用区对象。 |
name |
body |
字符串 |
资源的易于阅读的名称。 |
响应示例¶
{
"availability_zone": {
"name": "my_az",
"description": "My availability zone.",
"enabled": true,
"availability_zone_profile_id": "5712097e-0092-45dc-bff0-ab68b61ad51a"
}
}
显示可用区的详细信息。
使用 fields 查询参数来控制响应体中返回的字段。此外,您还可以使用查询字符串参数过滤结果。有关信息,请参阅 过滤和列选择。
此操作不需要请求正文。
版本 2.14 新增
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
401 - 未授权 |
由于凭据无效,访问被拒绝。 |
404 - Not Found |
找不到请求的资源。 |
500 - 内部服务器错误 |
服务出现问题,导致无法满足请求。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
fields (可选) |
查询 |
字符串 |
您希望服务器返回的字段。如果未指定 |
availability_zone_name |
路径 |
字符串 |
要查询的可用区的名称。 |
Curl 示例¶
curl -X GET -H "X-Auth-Token: <token>" http://198.51.100.10:9876/v2.0/lbaas/availabilityzones/my_az
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
description |
body |
字符串 |
资源的易于阅读的描述。 |
enabled |
body |
布尔值 |
资源是否可供使用。 |
availability_zone_profile_id |
body |
uuid |
可用区配置的 ID。 |
availability_zone |
body |
对象 |
一个可用区对象。 |
name |
body |
字符串 |
资源的易于阅读的名称。 |
响应示例¶
{
"availability_zone": {
"name": "my_az",
"description": "My availability zone.",
"enabled": true,
"availability_zone_profile_id": "5712097e-0092-45dc-bff0-ab68b61ad51a"
}
}
更新可用区。
如果您不是管理员用户,则服务将返回 HTTP Forbidden (403) 响应代码。
版本 2.14 新增
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
由于凭据无效,访问被拒绝。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
500 - 内部服务器错误 |
服务出现问题,导致无法满足请求。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
description (可选) |
body |
字符串 |
资源的易于阅读的描述。 |
enabled(可选) |
body |
布尔值 |
资源是否可供使用。默认为 True。 |
availability_zone |
body |
对象 |
一个可用区对象。 |
availability_zone_name |
路径 |
字符串 |
要查询的可用区的名称。 |
请求示例¶
{
"availability_zone": {
"description": "My availability zone.",
"enabled": false
}
}
Curl 示例¶
curl -X PUT -H "Content-Type: application/json" -H "X-Auth-Token: <token>" -d '{"availability_zone":{"description":"My availability zone.","enabled":false}}' http://198.51.100.10:9876/v2.0/lbaas/availabilityzones/my_az
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
description |
body |
字符串 |
资源的易于阅读的描述。 |
enabled |
body |
布尔值 |
资源是否可供使用。 |
availability_zone_profile_id |
body |
uuid |
可用区配置的 ID。 |
availability_zone |
body |
对象 |
一个可用区对象。 |
name |
body |
字符串 |
资源的易于阅读的名称。 |
响应示例¶
{
"availability_zone": {
"name": "my_az",
"description": "My availability zone.",
"enabled": false,
"availability_zone_profile_id": "5712097e-0092-45dc-bff0-ab68b61ad51a"
}
}
移除可用区及其关联配置。
如果任何负载均衡器正在使用此可用区,则服务将返回 HTTP Conflict (409) 响应代码。
如果您不是管理员用户,则服务将返回 HTTP Forbidden (403) 响应代码。
版本 2.14 新增
成功¶
代码 |
原因 |
|---|---|
204 - No Content |
请求已满足,但服务未返回任何内容。 |
错误¶
代码 |
原因 |
|---|---|
401 - 未授权 |
由于凭据无效,访问被拒绝。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
409 - Conflict |
此资源有一个正在进行的操作,与此请求冲突。 |
500 - 内部服务器错误 |
服务出现问题,导致无法满足请求。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
availability_zone_name |
路径 |
字符串 |
要查询的可用区的名称。 |
Curl 示例¶
curl -X DELETE -H "X-Auth-Token: <token>" http://198.51.100.10:9876/v2.0/lbaas/availabilityzones/my_az
响应¶
成功的 DELETE 请求没有响应正文内容。
可用区配置文件¶
列出所有可用的可用区配置文件。
使用 fields 查询参数来控制响应体中返回的字段。此外,您还可以使用查询字符串参数过滤结果。有关信息,请参阅 过滤和列选择。
如果您不是管理员用户,则服务将返回 HTTP Forbidden (403) 响应代码。
列表可能为空。
版本 2.14 新增
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
由于凭据无效,访问被拒绝。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
500 - 内部服务器错误 |
服务出现问题,导致无法满足请求。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
fields (可选) |
查询 |
字符串 |
您希望服务器返回的字段。如果未指定 |
Curl 示例¶
curl -X GET -H "X-Auth-Token: <token>" http://198.51.100.10:9876/v2.0/lbaas/availabilityzoneprofiles
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
availability_zone_data |
body |
字符串 |
包含可用区元数据的 JSON 字符串。 |
availability_zone_profiles |
body |
数组 |
一个 |
id |
body |
uuid |
可用区配置的 ID。 |
name |
body |
字符串 |
资源的易于阅读的名称。 |
provider_name |
body |
字符串 |
提供商名称。 |
响应示例¶
{
"availability_zone_profiles": [
{
"id": "5712097e-0092-45dc-bff0-ab68b61ad51a",
"name": "some_az",
"provider_name": "amphora",
"availability_zone_data": "{\"compute_zone\": \"az1\", \"volume_zone\": \"az2\"}"
}
]
}
创建可用区配置。
如果 API 由于数据不足或数据无效而无法满足请求,则服务将返回 HTTP Bad Request (400) 响应代码,并在响应体中提供失败信息。验证错误要求您纠正错误并重新提交请求。
如果您不是管理员用户,则服务将返回 HTTP Forbidden (403) 响应代码。
版本 2.14 新增
成功¶
代码 |
原因 |
|---|---|
201 - 已创建 |
请求已完成,并创建了新资源。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
由于凭据无效,访问被拒绝。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
500 - 内部服务器错误 |
服务出现问题,导致无法满足请求。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
availability_zone_data |
body |
字符串 |
包含可用区元数据的 JSON 字符串。 |
availability_zone_profile |
body |
对象 |
一个 |
name |
body |
字符串 |
资源的易于阅读的名称。 |
provider_name |
body |
字符串 |
提供商名称。 |
请求示例¶
{
"availability_zone_profile":
{
"name": "some_az",
"provider_name": "amphora",
"availability_zone_data": "{\"compute_zone\": \"az1\", \"volume_zone\": \"az1\"}"
}
}
Curl 示例¶
curl -X POST -H "Content-Type: application/json" -H "X-Auth-Token: <token>" -d '{"availability_zone_profile":{"name":"some_az","provider_name":"amphora","availability_zone_data":"{\"compute_zone\": \"az1\"}"}}' http://198.51.100.10:9876/v2.0/lbaas/availabilityzoneprofiles
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
availability_zone_data |
body |
字符串 |
包含可用区元数据的 JSON 字符串。 |
availability_zone_profile |
body |
对象 |
一个 |
id |
body |
uuid |
可用区配置的 ID。 |
name |
body |
字符串 |
资源的易于阅读的名称。 |
provider_name |
body |
字符串 |
提供商名称。 |
响应示例¶
{
"availability_zone_profile":
{
"id": "5712097e-0092-45dc-bff0-ab68b61ad51a",
"name": "some_az",
"provider_name": "amphora",
"availability_zone_data": "{\"compute_zone\": \"az1\", \"volume_zone\": \"az1\"}"
}
}
显示可用区配置的详细信息。
使用 fields 查询参数来控制响应体中返回的字段。此外,您还可以使用查询字符串参数过滤结果。有关信息,请参阅 过滤和列选择。
如果您不是管理员用户,则服务将返回 HTTP Forbidden (403) 响应代码。
此操作不需要请求正文。
版本 2.14 新增
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
401 - 未授权 |
由于凭据无效,访问被拒绝。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
500 - 内部服务器错误 |
服务出现问题,导致无法满足请求。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
fields (可选) |
查询 |
字符串 |
您希望服务器返回的字段。如果未指定 |
availability_zone_profile_id |
路径 |
uuid |
要查询的可用区配置的 ID。 |
Curl 示例¶
curl -X GET -H "X-Auth-Token: <token>" http://198.51.100.10:9876/v2.0/lbaas/availabilityzoneprofiles/5712097e-0092-45dc-bff0-ab68b61ad51a
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
availability_zone_data |
body |
字符串 |
包含可用区元数据的 JSON 字符串。 |
availability_zone_profile |
body |
对象 |
一个 |
id |
body |
uuid |
可用区配置的 ID。 |
name |
body |
字符串 |
资源的易于阅读的名称。 |
provider_name |
body |
字符串 |
提供商名称。 |
响应示例¶
{
"availability_zone_profile":
{
"id": "5712097e-0092-45dc-bff0-ab68b61ad51a",
"name": "some_az",
"provider_name": "amphora",
"availability_zone_data": "{\"compute_zone\": \"az1\", \"volume_zone\": \"az1\"}"
}
}
更新可用区配置。
如果您不是管理员用户,则服务将返回 HTTP Forbidden (403) 响应代码。
版本 2.14 新增
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
由于凭据无效,访问被拒绝。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
500 - 内部服务器错误 |
服务出现问题,导致无法满足请求。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
availability_zone_data (可选) |
body |
字符串 |
包含可用区元数据的 JSON 字符串。 |
availability_zone_profile |
body |
对象 |
一个 |
availability_zone_profile_id |
路径 |
uuid |
要查询的可用区配置的 ID。 |
name (可选) |
body |
字符串 |
资源的易于阅读的名称。 |
provider_name (可选) |
body |
字符串 |
提供商名称。 |
请求示例¶
{
"availability_zone_profile":
{
"name": "other_az",
"provider_name": "amphora",
"availability_zone_data": "{\"compute_zone\": \"az2\", \"volume_zone\": \"az2\"}"
}
}
Curl 示例¶
curl -X PUT -H "Content-Type: application/json" -H "X-Auth-Token: <token>" -d '{"availability_zone_profile":{"name":"other_az","provider_name":"amphora","availability_zone_data":"{\"compute_zone\": \"az2\"}"}}' http://198.51.100.10:9876/v2.0/lbaas/availabilityzoneprofiles/5712097e-0092-45dc-bff0-ab68b61ad51a
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
availability_zone_data |
body |
字符串 |
包含可用区元数据的 JSON 字符串。 |
availability_zone_profile |
body |
对象 |
一个 |
id |
body |
uuid |
可用区配置的 ID。 |
name |
body |
字符串 |
资源的易于阅读的名称。 |
provider_name |
body |
字符串 |
提供商名称。 |
响应示例¶
{
"availability_zone_profile":
{
"id": "5712097e-0092-45dc-bff0-ab68b61ad51a",
"name": "other_az",
"provider_name": "amphora",
"availability_zone_data": "{\"compute_zone\": \"az2\", \"volume_zone\": \"az2\"}"
}
}
移除可用区配置及其关联配置。
如果任何可用区正在使用此可用区配置,服务将返回 HTTP Conflict (409) 响应代码。
如果您不是管理员用户,则服务将返回 HTTP Forbidden (403) 响应代码。
版本 2.14 新增
成功¶
代码 |
原因 |
|---|---|
204 - No Content |
请求已满足,但服务未返回任何内容。 |
错误¶
代码 |
原因 |
|---|---|
401 - 未授权 |
由于凭据无效,访问被拒绝。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
409 - Conflict |
此资源有一个正在进行的操作,与此请求冲突。 |
500 - 内部服务器错误 |
服务出现问题,导致无法满足请求。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
availability_zone_profile_id |
路径 |
uuid |
要查询的可用区配置的 ID。 |
Curl 示例¶
curl -X DELETE -H "X-Auth-Token: <token>" http://198.51.100.10:9876/v2.0/lbaas/availabilityzoneprofiles/5712097e-0092-45dc-bff0-ab68b61ad51a
响应¶
成功的 DELETE 请求没有响应正文内容。
Amphorae¶
列出项目的所有 amphora。
如果您不是管理员用户,服务将返回 HTTP Forbidden (403) 响应代码。
使用 fields 查询参数来控制响应体中返回的字段。此外,您还可以使用查询字符串参数过滤结果。有关信息,请参阅 过滤和列选择。
列表可能为空。
注意
字段 cached_zone 仅用于快速过滤和参考,因为它可能已过时。如果需要最新的区域信息,我们建议直接从计算服务检索详细信息。
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
由于凭据无效,访问被拒绝。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
500 - 内部服务器错误 |
服务出现问题,导致无法满足请求。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
fields (可选) |
查询 |
字符串 |
您希望服务器返回的字段。如果未指定 |
Curl 示例¶
curl -X GET -H "X-Auth-Token: <token>" http://198.51.100.10:9876/v2/octavia/amphorae?loadbalancer_id=09eedfc6-2c55-41a8-a75c-2cd4e95212ca
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
id |
body |
uuid |
关联的 amphora ID。 |
loadbalancer_id |
body |
uuid |
负载均衡器的 ID。 |
compute_id |
body |
uuid |
计算系统中的 amphora 资源的 ID。 |
lb_network_ip |
body |
字符串 |
amphora 的管理 IP。 |
vrrp_ip |
body |
字符串 |
amphora 上 vrrp 端口的地址。 |
ha_ip |
body |
字符串 |
虚拟 IP (VIP) 的 IP 地址。 |
vrrp_port_id |
body |
uuid |
网络系统中的 vrrp 端口的 ID。 |
ha_port_id |
body |
uuid |
虚拟 IP (VIP) 端口的 ID。 |
cert_expiration |
body |
字符串 |
amphora 证书的到期日期。 |
cert_busy |
body |
字符串 |
证书是否正在被替换。 |
role |
body |
字符串 |
amphora 的角色。可以是 |
status |
body |
字符串 |
amphora 的状态。可以是: |
vrrp_interface |
body |
字符串 |
amphora 上 vrrp 端口的绑定接口名称。 |
vrrp_id |
body |
字符串 |
amphora 的 vrrp 组 ID。 |
vrrp_priority |
body |
字符串 |
amphora 在 vrrp 组中的优先级。 |
cached_zone |
body |
字符串 |
在创建时缓存的计算实例的可用区。此信息不保证是最新的。如果计算服务不使用区域,则可能为空字符串。 |
created_at |
body |
字符串 |
资源创建的 UTC 日期和时间戳。 |
updated_at |
body |
字符串 |
上次更新资源的 UTC 日期和时间戳。 |
image_id |
body |
uuid |
用于 amphora 的 glance 镜像 ID。 新增于版本 2.1 |
compute_flavor |
body |
字符串 |
用于 amphora 的计算 flavor ID。 版本 2.3 新增 |
响应示例¶
{
"amphorae": [
{
"id": "6bd55cd3-802e-447e-a518-1e74e23bb106",
"load_balancer_id": "09eedfc6-2c55-41a8-a75c-2cd4e95212ca",
"compute_id": "f0f79f90-733d-417a-8d70-cc6be62cd54d",
"lb_network_ip": "192.168.1.2",
"vrrp_ip": "192.168.1.5",
"ha_ip": "192.168.1.10",
"vrrp_port_id": "ab2a8add-76a9-44bb-89f8-88430193cc83",
"ha_port_id": "19561fd3-5da5-46cc-bdd3-99bbdf7246e6",
"cert_expiration": "2019-09-19 00:34:51",
"cert_busy": 0,
"role": "MASTER",
"status": "ALLOCATED",
"vrrp_interface": "eth1",
"vrrp_id": 1,
"vrrp_priority": 100,
"cached_zone": "zone1",
"created_at": "2017-05-10T18:14:44",
"updated_at": "2017-05-10T23:08:12",
"image_id": "c1c2ad6f-1c1e-4744-8d1a-d0ef36289e74",
"compute_flavor": "5446a14a-abec-4455-bc0e-a34e5ff001a3"
},
{
"id": "89c186a3-cb16-497b-b099-c4bd40316642",
"load_balancer_id": "09eedfc6-2c55-41a8-a75c-2cd4e95212ca",
"compute_id": "24b1cb54-122d-4960-9035-083642f5c2bb",
"lb_network_ip": "192.168.1.3",
"vrrp_ip": "192.168.1.6",
"ha_ip": "192.168.1.10",
"vrrp_port_id": "cae421f6-dcf0-4866-9438-d0c682645799",
"ha_port_id": "19561fd3-5da5-46cc-bdd3-99bbdf7246e6",
"cert_expiration": "2019-09-19 00:34:51",
"cert_busy": 0,
"role": "BACKUP",
"status": "ALLOCATED",
"vrrp_interface": "eth1",
"vrrp_id": 1,
"vrrp_priority": 200,
"cached_zone": "zone2",
"created_at": "2017-06-11T19:15:45",
"updated_at": "2017-06-11T24:09:13",
"image_id": "1014292d-cbaa-4ad6-b38b-2e138389f87f",
"compute_flavor": "5446a14a-abec-4455-bc0e-a34e5ff001a3"
}
]
}
显示 amphora 的详细信息。
如果您不是管理员用户,服务将返回 HTTP Forbidden (403) 响应代码。
此操作不需要请求正文。
注意
字段 cached_zone 仅用于快速过滤和参考,因为它可能已过时。如果需要最新的区域信息,我们建议直接从计算服务检索详细信息。
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
401 - 未授权 |
由于凭据无效,访问被拒绝。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
500 - 内部服务器错误 |
服务出现问题,导致无法满足请求。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
fields (可选) |
查询 |
字符串 |
您希望服务器返回的字段。如果未指定 |
amphora_id |
路径 |
uuid |
要查询的 amphora 的 ID。 |
Curl 示例¶
curl -X GET -H "X-Auth-Token: <token>" http://198.51.100.10:9876/v2/octavia/amphorae/6bd55cd3-802e-447e-a518-1e74e23bb106
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
id |
body |
uuid |
关联的 amphora ID。 |
loadbalancer_id |
body |
uuid |
负载均衡器的 ID。 |
compute_id |
body |
uuid |
计算系统中的 amphora 资源的 ID。 |
lb_network_ip |
body |
字符串 |
amphora 的管理 IP。 |
vrrp_ip |
body |
字符串 |
amphora 上 vrrp 端口的地址。 |
ha_ip |
body |
字符串 |
虚拟 IP (VIP) 的 IP 地址。 |
vrrp_port_id |
body |
uuid |
网络系统中的 vrrp 端口的 ID。 |
ha_port_id |
body |
uuid |
虚拟 IP (VIP) 端口的 ID。 |
cert_expiration |
body |
字符串 |
amphora 证书的到期日期。 |
cert_busy |
body |
字符串 |
证书是否正在被替换。 |
role |
body |
字符串 |
amphora 的角色。可以是 |
status |
body |
字符串 |
amphora 的状态。可以是: |
vrrp_interface |
body |
字符串 |
amphora 上 vrrp 端口的绑定接口名称。 |
vrrp_id |
body |
字符串 |
amphora 的 vrrp 组 ID。 |
vrrp_priority |
body |
字符串 |
amphora 在 vrrp 组中的优先级。 |
cached_zone |
body |
字符串 |
在创建时缓存的计算实例的可用区。此信息不保证是最新的。如果计算服务不使用区域,则可能为空字符串。 |
created_at |
body |
字符串 |
资源创建的 UTC 日期和时间戳。 |
updated_at |
body |
字符串 |
上次更新资源的 UTC 日期和时间戳。 |
image_id |
body |
uuid |
用于 amphora 的 glance 镜像 ID。 新增于版本 2.1 |
compute_flavor |
body |
字符串 |
用于 amphora 的计算 flavor ID。 版本 2.3 新增 |
响应示例¶
{
"amphora": {
"id": "6bd55cd3-802e-447e-a518-1e74e23bb106",
"load_balancer_id": "09eedfc6-2c55-41a8-a75c-2cd4e95212ca",
"compute_id": "f0f79f90-733d-417a-8d70-cc6be62cd54d",
"lb_network_ip": "192.168.1.2",
"vrrp_ip": "192.168.1.5",
"ha_ip": "192.168.1.10",
"vrrp_port_id": "ab2a8add-76a9-44bb-89f8-88430193cc83",
"ha_port_id": "19561fd3-5da5-46cc-bdd3-99bbdf7246e6",
"cert_expiration": "2019-09-19 00:34:51",
"cert_busy": 0,
"role": "MASTER",
"status": "ALLOCATED",
"vrrp_interface": "eth1",
"vrrp_id": 1,
"vrrp_priority": 100,
"cached_zone": "zone1",
"created_at": "2017-05-10T18:14:44",
"updated_at": "2017-05-10T23:08:12",
"image_id": "c1c2ad6f-1c1e-4744-8d1a-d0ef36289e74",
"compute_flavor": "5446a14a-abec-4455-bc0e-a34e5ff001a3"
}
}
显示 amphora 的统计信息。
如果您不是管理员用户,服务将返回 HTTP Forbidden (403) 响应代码。
使用 fields 查询参数来控制响应体中返回的字段。
版本 2.3 新增
成功¶
代码 |
原因 |
|---|---|
200 - 正常 |
请求成功。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
由于凭据无效,访问被拒绝。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
500 - 内部服务器错误 |
服务出现问题,导致无法满足请求。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
amphora_id |
路径 |
uuid |
要查询的 amphora 的 ID。 |
fields (可选) |
查询 |
字符串 |
您希望服务器返回的字段。如果未指定 |
Curl 示例¶
curl -X GET -H "X-Auth-Token: <token>" http://198.51.100.10:9876/v2/octavia/amphorae/63d8349e-c4d7-4156-bc94-29260607b04f/stats
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
active_connections |
body |
整数 |
当前活动的连接数。 |
amphora_stats |
body |
数组 |
一个 amphora 统计信息的对象列表,每个监听器一个。 版本 2.3 新增 |
bytes_in |
body |
整数 |
接收到的总字节数。 |
bytes_out |
body |
整数 |
发送的总字节数。 |
id |
body |
uuid |
关联的 amphora ID。 |
listener_id |
body |
uuid |
监听器的 ID。 |
loadbalancer_id |
body |
uuid |
负载均衡器的 ID。 |
request_errors |
body |
整数 |
无法完成的总请求数。 |
total_connections |
body |
整数 |
处理的总连接数。 |
响应示例¶
{
"amphora_stats": [
{
"active_connections": 48629,
"bytes_in": 65671420,
"bytes_out": 774771186,
"id": "63d8349e-c4d7-4156-bc94-29260607b04f",
"listener_id": "bbe44114-cda2-4fe0-b192-d9e24ce661db",
"loadbalancer_id": "65b5a7c3-1437-4909-84cf-cec9f7e371ea",
"request_errors": 0,
"total_connections": 26189172
},
{
"active_connections": 0,
"bytes_in": 5,
"bytes_out": 100,
"id": "63d8349e-c4d7-4156-bc94-29260607b04f",
"listener_id": "af45a658-4eeb-4ce9-8b7e-16b0e5676f87",
"loadbalancer_id": "65b5a7c3-1437-4909-84cf-cec9f7e371ea",
"request_errors": 0,
"total_connections": 1
}
]
}
更新 amphora 代理配置。这将把新配置推送到 amphora 代理,并更新可变的配置选项。
如果您不是管理员用户,服务将返回 HTTP Forbidden (403) 响应代码。
此操作不需要请求正文。
版本 2.7 新增
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
由于凭据无效,访问被拒绝。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
500 - 内部服务器错误 |
服务出现问题,导致无法满足请求。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
amphora_id |
路径 |
uuid |
要查询的 amphora 的 ID。 |
Curl 示例¶
curl -X PUT -H "X-Auth-Token: <token>" http://198.51.100.10:9876/v2/octavia/amphorae/6bd55cd3-802e-447e-a518-1e74e23bb106/config
响应¶
成功的 PUT 请求响应没有正文内容。
强制 amphora 故障转移。
如果您不是管理员用户,服务将返回 HTTP Forbidden (403) 响应代码。
此操作不需要请求正文。
成功¶
代码 |
原因 |
|---|---|
202 - Accepted |
请求已接受,但处理可能需要一些时间。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
由于凭据无效,访问被拒绝。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
500 - 内部服务器错误 |
服务出现问题,导致无法满足请求。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
amphora_id |
路径 |
uuid |
要查询的 amphora 的 ID。 |
Curl 示例¶
curl -X PUT -H "X-Auth-Token: <token>" http://198.51.100.10:9876/v2/octavia/amphorae/6bd55cd3-802e-447e-a518-1e74e23bb106/failover
响应¶
成功的 PUT 请求响应没有正文内容。
移除 amphora 及其关联配置。
API 将立即清除任何和所有配置数据,具体取决于配置设置。您无法恢复它。
版本 2.20 新增
成功¶
代码 |
原因 |
|---|---|
204 - No Content |
请求已满足,但服务未返回任何内容。 |
错误¶
代码 |
原因 |
|---|---|
400 - 请求错误 |
请求中的某些内容无效。 |
401 - 未授权 |
由于凭据无效,访问被拒绝。 |
403 - 禁止 |
策略不允许当前用户执行此操作。 |
404 - Not Found |
找不到请求的资源。 |
409 - Conflict |
此资源有一个正在进行的操作,与此请求冲突。 |
500 - 内部服务器错误 |
服务出现问题,导致无法满足请求。 |
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
amphora_id |
路径 |
uuid |
要查询的 amphora 的 ID。 |
Curl 示例¶
curl -X DELETE -H "X-Auth-Token: <token>" http://198.51.100.10:9876/v2/octavia/amphorae/1a032adb-d6ac-4dbb-a04a-c1126bc547c7
响应¶
成功的 DELETE 请求没有响应正文内容。