接口功能介绍
创建监听器
接口约束
该接口为异步接口,第一次请求会返回资源在创建中,需要用户发起多次请求,直到 status 为 done 为止。
当前接口使用前使用资源池概况信息查询接口查询待对接的资源池信息,如资源池概况信息查询结果为"regionVersion":"v3.0",即可使用;如资源池概况信息结果为"regionVersion":"v4.0",请使用API内接口创建监听器。
URI
POST /v4/elb/async-create-listener
请求参数
请求Body参数
参数 | 参数类型 | 是否必填 | 说明 | 示例 |
---|---|---|---|---|
clientToken | String | 是 | 客户端存根,用于保证订单幂等性。要求单个云平台账户内唯一 | |
regionID | String | 是 | 区域ID | |
loadBalanceID | String | 是 | 负载均衡实例ID | |
name | String | 是 | 监听器名称 | |
description | String | 否 | 描述 | |
protocol | String | 是 | 监听协议。取值范围:TCP、UDP、HTTP、HTTPS | |
protocolPort | Integer | 是 | 负载均衡实例监听端口。取值:1-65535 | |
certificateID | String | 否 | 证书ID。当protocol为HTTPS时,此参数必选 | |
caEnabled | boolean | 否 | 是否开启双向认证。false(不开启)、true(开启) | |
clientCertificateID | String | 否 | 双向认证的证书ID | |
targetGroup | Object | 是 | 后端服务组 | 见下表 |
accessControlID | String | 否 | 访问控制ID | |
accessControlType | String | 否 | 访问控制类型。取值范围:Close(未启用)、White(白名单)、Black(黑名单) | |
forwardedForEnabled | Boolean | 否 | x forward for功能。false(未开启)、true(开启) |
表 targetGroup
参数 | 参数类型 | 是否必填 | 说明 | 示例 |
---|---|---|---|---|
name | String | 是 | 后端服务组名字 | test |
algorithm | String | 是 | 负载均衡算法,支持: rr (轮询), lc (最少链接) | rr |
targets | Array of Objects | 否 | 后端服务 | 见下表 |
healthCheck | Object | 否 | 健康检查配置 | 见下表 |
sessionSticky | Object | 否 | 会话保持 | 见下表 |
表 targets
参数 | 参数类型 | 是否必填 | 说明 | 示例 |
---|---|---|---|---|
instanceID | String | 是 | 后端服务主机 id | xxxxxxxxxx |
protocolPort | Integer | 是 | 后端服务监听端口 | 80 |
instanceType | String | 后端服务主机类型,目前支持 vm | vm | |
weight | Integer | 是 | 后端服务主机权重: 1 - 256 | 1 |
address | String | 是 | 后端服务主机主网卡所在的 IP | 192.168.0.1 |
name | String | 是 | 后端服务名 | test |
表 healthCheck
参数 | 参数类型 | 是否必填 | 说明 | 示例 |
---|---|---|---|---|
protocol | String | 是 | 健康检查协议。取值范围:TCP、UDP、HTTP | |
timeout | Integer | 否 | 健康检查响应的最大超时时间,取值范围:2-60秒,默认为2秒 | 2 |
interval | Integer | 否 | 负载均衡进行健康检查的时间间隔,取值范围:1-20940秒,默认为5秒 | 5 |
maxRetry | Integer | 否 | 最大重试次数,取值范围:1-10次,默认为2次 | 2 |
httpMethod | String | 否 | 仅当protocol为HTTP时必填且生效,HTTP请求的方法默认GET,{GET/HEAD/POST/PUT/DELETE/TRACE/OPTIONS/CONNECT/PATCH} | |
httpUrlPath | String | 否 | 仅当protocol为HTTP时必填且生效,默认为'/',支持的最大字符长度:80 | / |
httpExpectedCodes | Stringy | 否 | 仅当protocol为HTTP时必填且生效,支持{http_2xx/http_3xx/http_4xx/http_5xx} | 200 |
表 sessionSticky
参数 | 参数类型 | 是否必填 | 说明 | 示例 |
---|---|---|---|---|
sessionType | String | 是 | 会话保持类型。取值范围:APP_COOKIE、HTTP_COOKIE、SOURCE_IP | APP_COOKIE |
cookieName | String | 否 | cookie名称,当 sessionType 为 APP_COOKIE 时,为必填参数 | test |
persistenceTimeout | Integer | 否 | 会话过期时间,当 sessionType 为 APP_COOKIE 或 SOURCE_IP 时,为必填参数 | 10000 |
响应参数
参数 | 参数类型 | 说明 | 示例 |
---|---|---|---|
statusCode | Integer | 返回状态码(800为成功,900为失败) | 800 |
message | String | statusCode为900时的错误信息,英文 | success |
descritption | String | statusCode为800时的错误信息,中文 | |
errorCode | String | 错误明细 | SUCCESS |
returnObj | Object | 返回结果 | 见下表 |
表 returnObj
参数 | 参数类型 | 说明 | 示例 |
---|---|---|---|
status | String | 创建进度: in_progress / done | in_progress |
message | String | 进度说明 | 请使用相同请求,进行重试 |
listenerID | String | 监听器,可能为 null | edbe1a3e-bac3-48a5-9357-d9239d7d1577 |
请求示例
POST /v4/elb/async-create-listener
请求体body
{
"clientToken": "xxxx",
"regionID": "81f7728662dd11ec810800155d307d5b",
"loadBalancerID": "lb-ai7x5ulq4t",
"name": "yacos-test-tmp",
"description": "yacos-test-tmp",
"protocol": "HTTP",
"protocolPort": 8080,
"targetGroup": {
"name": "test",
"algorithm": "rr"
},
"certificateID": null,
"caEnabled": false,
"accessControlID": "ac-or6bz91ihq",
"accessControlType": "White",
"forwardedForEnabled": true
}
响应示例
{
"statusCode": 800,
"errorCode": "SUCCESS",
"message": "success",
"description": "",
"returnObj": {
"status": "in_progress",
"message": "请使用相同请求,进行重试",
"listenerID": null
}
}
状态码
状态码 | 描述 |
---|---|
200 | 表示请求成功。 |
错误码
请参考 错误码说明。