接口功能介绍
创建转发规则
接口约束
该接口为异步接口,第一次请求会返回资源在创建中,需要用户发起多次请求,直到 status 为 done 为止。
URI
POST /v4/elb/async-create-policy
路径参数
无
Query参数
无
请求参数
请求头header参数
无
请求体body参数
参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
---|---|---|---|---|---|
clientToken | 是 | String | 客户端存根,用于保证订单幂等性, 长度 1 - 64 | 79fa97e3-c48b-xxxx-9f46-6a13d8163678 | |
regionID | 是 | String | 区域ID | ||
listenerID | 是 | String | 监听器ID | ||
name | 是 | String | 支持拉丁字母、中文、数字,下划线,连字符,中文 / 英文字母开头,不能以 http: / https: 开头,长度 2 - 32 | acl11 | |
description | 否 | String | 支持拉丁字母、中文、数字, 特殊字符: |
test | |
conditions | 是 | Array of Objects | 匹配规则数据 | conditions | |
targetGroup | 是 | Object | 后端服务组 | targetGroup |
表 targetGroup
参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
---|---|---|---|---|---|
name | 是 | String | 后端服务组名字 | test | |
algorithm | 是 | String | 负载均衡算法,支持: rr (轮询), lc (最少链接) | rr | |
targets | 否 | Array of Objects | 后端服务 | 见下表 | targets |
healthCheck | 否 | Object | 健康检查配置 | 见下表 | healthCheck |
sessionSticky | 否 | Object | 会话保持 | 见下表 | sessionSticky |
表 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} | ||
httpUrlPath | 否 | String | 仅当protocol为HTTP时必填且生效,支持的最大字符长度:80 | / | |
httpExpectedCodes | 否 | String | 仅当protocol为HTTP时必填且生效,最长支持64个字符,只能是三位数,可以以,分隔表示多个,或者以-分割表示范围,默认200 | 200 |
表 sessionSticky
参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
---|---|---|---|---|---|
cookieName | 否 | String | cookie名称,当 sessionType 为 APP_COOKIE 时,为必填参数 | test | |
persistenceTimeout | 否 | Integer | 会话过期时间,当 sessionType 为 APP_COOKIE 或 SOURCE_IP 时,为必填参数 | 10000 | |
sessionType | 是 | String | 会话保持类型。取值范围:APP_COOKIE、HTTP_COOKIE、SOURCE_IP | APP_COOKIE |
表 targets
参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
---|---|---|---|---|---|
instanceID | 是 | String | 后端服务主机 id | xxxxxxxxxx | |
protocolPort | 是 | Integer | 后端服务监听端口 | 80 | |
instanceType | 是 | String | 后端服务主机类型,目前支持 vm | vm | |
weight | 是 | Integer | 后端服务主机权重: 1 - 256 | 1 | |
address | 是 | String | 后端服务主机主网卡所在的 IP | 192.168.0.1 |
表 conditions
参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
---|---|---|---|---|---|
ruleType | 是 | String | 规则类型,支持 HOST(按照域名)、PATH(请求路径) | PATH | |
matchType | 是 | String | 匹配类型,支持 STARTS_WITH(前缀匹配)、EQUAL_TO(精确匹配)、REGEX(正则匹配) | REGEX | |
matchValue | 是 | String | 被匹配的值,如果 ruleType 为 PATH,不能用 / 进行匹配 | /foo |
响应参数
参数 | 参数类型 | 说明 | 示例 | 下级对象 |
---|---|---|---|---|
statusCode | Integer | 返回状态码(800为成功,900为失败) | 800 | |
message | String | statusCode为900时的错误信息; statusCode为800时为success, 英文 | success | |
description | String | statusCode为900时的错误信息; statusCode为800时为成功, 中文 | 成功 | |
errorCode | String | statusCode为900时为业务细分错误码,三段式:product.module.code; statusCode为800时为SUCCESS | SUCCESS | |
returnObj | Object | 返回结果 | 见下表 | returnObj |
error | String | statusCode为900时为业务细分错误码,三段式:product.module.code; statusCode为800时为SUCCESS |
表 returnObj
参数 | 参数类型 | 说明 | 示例 | 下级对象 |
---|---|---|---|---|
status | String | 创建进度: in_progress / done | in_progress | |
message | String | 进度说明 | 请使用相同请求,进行重试 | |
policyID | String | 转发策略 ID,可能为 null | edbe1a3e-bac3-48a5-9357-d9239d7d1577 |
枚举参数
无
请求示例
请求url
POST /v4/elb/async-create-policy
请求头header
无
请求体body
{
"clientToken": "xxxx",
"regionID": "81f7728662dd11ec810800155d307d5b",
"listenerID": "lb-ai7x5ulq4t",
"name": "yacos-test-tmp",
"description": "yacos-test-tmp",
"targetGroup": {
"name": "test",
"algorithm": "rr"
},
"conditions": [
{
"ruleType": "PATH",
"matchType": "STARTS_WITH",
"matchValue": "/foo"
}
]
}
响应示例
{
"statusCode": 800,
"message": "success",
"description": "成功",
"errorCode": "SUCCESS",
"returnObj": {
"status": "in_progress",
"message": "请使用相同请求,进行重试",
"policyID": null
}
}
状态码
请参考 状态码
错误码
请参考 错误码