異步創建轉發策略
更新時間 2025-05-23 22:34:41
最近更新時間: 2025-05-23 22:34:41
分享文章
接口功能介紹
創建轉發規則
接口約束
該接口為異步接口,第一次請求會返回資源在創建中,需要用戶發起多次請求,直到 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
}
}
狀態碼
請參考
錯誤碼
請參考