创建负载均衡监听器(CreateLoadBalancerListener)
API请求
URLs
POST zstack/v1/load-balancers/{loadBalancerUuid}/listenersHeaders
Authorization: OAuth the-session-uuidBody
{
"params": {
"name": "Test-Listener",
"instancePort": 80,
"loadBalancerPort": 80,
"protocol": "http",
"aclStatus": "disable",
"aclType": "black"
},
"systemTags": [],
"userTags": []
}Note: 上述示例中systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X POST -d '{"params":{"name":"Test-Listener","instancePort":80,"loadBalancerPort":80,"protocol":"http","aclStatus":"disable","aclType":"black"}}' \
http://localhost:8080/zstack/v1/load-balancers/192b3fe960d63e078ced8f59529a25ad/listeners参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| loadBalancerUuid | String | url | 负载均衡器UUID | 0.6 | |
| name | String | body(包含在params结构中) | 资源名称 | 0.6 | |
| description (可选) | String | body(包含在params结构中) | 资源的详细描述 | 0.6 | |
| instancePort (可选) | Integer | body(包含在params结构中) | 云主机端口 | 0.6 | |
| loadBalancerPort | int | body(包含在params结构中) | 负载均衡器端口 | 0.6 | |
| protocol (可选) | String | body(包含在params结构中) | 监听协议 |
|
3.0 |
| certificateUuid (可选) | String | body(包含在params结构中) | 证书UUID | 2.3 | |
| healthCheckProtocol (可选) | String | body(包含在params结构中) | 健康检查协议 |
|
3.9 |
| healthCheckTarget (可选) | String | body(包含在params结构中) | 健康检查端口,default表示使用后端服务器端口 | 5.5.38 | |
| healthCheckTimeout (可选) | Integer | body(包含在params结构中) | 健康检查超时时间 | 5.5.38 | |
| healthCheckMethod (可选) | String | body(包含在params结构中) | 健康检查方法 |
|
3.9 |
| healthCheckURI (可选) | String | body(包含在params结构中) | 健康检查的URI | 3.9 | |
| healthCheckHttpCode (可选) | String | body(包含在params结构中) | 健康检查期望的返回码 | 3.9 | |
| aclStatus (可选) | String | body(包含在params结构中) | 访问控制策略状态 |
|
3.9 |
| aclUuids (可选) | List | body(包含在params结构中) | 访问控制策略组UUID列表 | 3.9 | |
| aclType (可选) | String | body(包含在params结构中) | 访问控制策略类型 |
|
3.9 |
| dataPlane (可选) | String | body(包含在params结构中) | 监听器使用的数据平面。haproxy 表示使用 HAProxy,ipvs 表示使用 IPVS。 |
|
5.5.28 |
| forwardMode (可选) | String | body(包含在params结构中) | 监听器使用 IPVS 数据平面时的转发模式。当前 TCP IPVS 监听器支持 full_nat、nat、dr。 |
|
5.5.28 |
| securityPolicyType (可选) | String | body(包含在params结构中) | TLS安全策略 |
|
4.1 |
| httpVersions (可选) | List | body(包含在params结构中) | 支持的HTTP协议版本列表 | 5.0.0 | |
| tcpProxyProtocol (可选) | String | body(包含在params结构中) | TCP Proxy Protocol配置 | 5.0.0 | |
| httpCompressAlgos (可选) | List | body(包含在params结构中) | HTTP压缩算法列表 | 5.0.0 | |
| resourceUuid (可选) | String | body(包含在params结构中) | 资源UUID | 0.6 | |
| tagUuids (可选) | List | body(包含在params结构中) | 标签UUID列表 | 3.4.0 | |
| systemTags (可选) | List | body | 系统标签 | 0.6 | |
| userTags (可选) | List | body | 用户标签 | 0.6 |
API返回
返回示例
{
"inventory": {
"uuid": "e82212513e2f3644885d98ce164ee687",
"name": "Test-Listener",
"loadBalancerUuid": "f7b267e9a5683ba5981b79196ca65d47",
"instancePort": 80,
"loadBalancerPort": 80,
"protocol": "http"
}
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| success | boolean | 0.6 | |
| error | ErrorCode | 错误码,若不为null,则表示操作失败,操作成功时该字段为null。 详情参考error | 0.6 |
| inventory | LoadBalancerListenerInventory | 详情参考inventory | 0.6 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如 SYS.1000、HOST.1001 | 5.3.20 |
| description | String | 错误的概要描述 | 5.3.20 |
| details | String | 错误的详细信息 | 5.3.20 |
| elaboration | String | 保留字段,默认为null | 5.3.20 |
| opaque | LinkedHashMap | 保留字段,默认为null | 5.3.20 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 5.3.20 |
#inventory
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 0.6 |
| name | String | 资源名称 | 0.6 |
| description | String | 资源的详细描述 | 0.6 |
| loadBalancerUuid | String | 负载均衡器UUID | 0.6 |
| instancePort | Integer | 0.6 | |
| loadBalancerPort | Integer | 0.6 | |
| protocol | String | 0.6 | |
| serverGroupUuid | String | 4.0 | |
| createDate | Timestamp | 创建时间 | 0.6 |
| lastOpDate | Timestamp | 最后一次修改时间 | 0.6 |
| vmNicRefs | List | 详情参考vmNicRefs | 0.6 |
| aclRefs | List | 详情参考aclRefs | 3.9 |
| certificateRefs | List | 详情参考certificateRefs | 0.6 |
| serverGroupRefs | List | 详情参考serverGroupRefs | 4.0 |
#vmNicRefs
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| id | Long | 0.6 | |
| listenerUuid | String | 0.6 | |
| vmNicUuid | String | 云主机网卡UUID | 0.6 |
| status | String | 0.6 | |
| createDate | Timestamp | 创建时间 | 0.6 |
| lastOpDate | Timestamp | 最后一次修改时间 | 0.6 |
#aclRefs
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| id | Long | 资源唯一标识 | 3.9 |
| listenerUuid | String | 监听器唯一标识 | 3.9 |
| aclUuid | String | 访问策略组唯一标识 | 3.9 |
| type | String | 访问策略类型 | 3.9 |
| createDate | Timestamp | 创建时间 | 3.9 |
| lastOpDate | Timestamp | 最后一次修改时间 | 3.9 |
#certificateRefs
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| id | Long | 2.3 | |
| listenerUuid | String | 2.3 | |
| certificateUuid | String | 2.3 | |
| createDate | Timestamp | 创建时间 | 2.3 |
| lastOpDate | Timestamp | 最后一次修改时间 | 2.3 |
#serverGroupRefs
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| id | long | 0.6 | |
| listenerUuid | String | 0.6 | |
| serverGroupUuid | String | 0.6 | |
| createDate | Timestamp | 创建时间 | 0.6 |
| lastOpDate | Timestamp | 最后一次修改时间 | 0.6 |
SDK示例
Java SDK
CreateLoadBalancerListenerAction action = new CreateLoadBalancerListenerAction();
action.loadBalancerUuid = "192b3fe960d63e078ced8f59529a25ad";
action.name = "Test-Listener";
action.instancePort = 80;
action.loadBalancerPort = 80;
action.protocol = "http";
action.aclStatus = "disable";
action.aclType = "black";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
CreateLoadBalancerListenerAction.Result res = action.call();Python SDK
action = CreateLoadBalancerListenerAction()
action.loadBalancerUuid = "192b3fe960d63e078ced8f59529a25ad"
action.name = "Test-Listener"
action.instancePort = 80
action.loadBalancerPort = 80
action.protocol = "http"
action.aclStatus = "disable"
action.aclType = "black"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
res = action.call()