创建应用型负载均衡的转发规则 - CreateRule
简介
给应用型负载均衡监听器创建一条转发规则
定义
公共参数
参数名 | 类型 | 描述信息 | 必填 |
---|---|---|---|
Action | string | 对应的 API 指令名称,当前 API 为 CreateRule | Yes |
PublicKey | string | 用户公钥,可从 控制台 获取 | Yes |
Signature | string | 根据公钥及 API 指令生成的用户签名,参见 签名算法 | Yes |
请求参数
参数名 | 类型 | 描述信息 | 必填 |
---|---|---|---|
Region | string | 地域。 参见 地域和可用区列表 | Yes |
ProjectId | string | 项目ID。不填写为默认项目,子帐号必须填写。 请参考GetProjectList接口 | Yes |
LoadBalancerId | string | 应用型负载均衡实例的ID | Yes |
ListenerId | string | 应用型负载均衡监听器的ID | Yes |
RuleConditions | array[RuleCondition] | 转发规则匹配条件。数组长度至少为1,目前最多支持一个域名和一个路径类型的 RuleCondition,即数组长度最多为2且不同类型。 具体结构见下方 RuleCondition | Yes |
RuleActions | array[RuleAction] | 转发动作。 数组长度只能为1。具体结构见下方 RuleAction | Yes |
Pass | bool | 当转发的服务节点为空时,规则是否忽略。默认值true; 默认转发规则不可更改 | No |
数据模型
RuleCondition
字段名 | 类型 | 描述信息 | 必填 |
---|---|---|---|
Type | string | 匹配条件类型。限定枚举值:Host,Path | Yes |
HostConfig | HostConfigSet | 域名相关配置。Type为Host时必填。具体结构详见 HostConfigSet | No |
PathConfig | PathConfigSet | 路径相关配置。Type为Path时必填。具体结构详见 PathConfigSet | No |
HostConfigSet
字段名 | 类型 | 描述信息 | 必填 |
---|---|---|---|
MatchMode | string | 匹配方式。限定枚举值:Regular-正则,Wildcard-泛域名; 默认值:Regular | No |
Values | array[string] | 取值。暂时只支持数组长度为1; 取值需符合相关匹配方式的条件 | Yes |
PathConfigSet
字段名 | 类型 | 描述信息 | 必填 |
---|---|---|---|
Values | array[string] | 取值。暂时只支持数组长度为1; 取值需符合相关匹配方式的条件 | Yes |
RuleAction
字段名 | 类型 | 描述信息 | 必填 |
---|---|---|---|
Type | string | 动作类型。限定枚举值:Forward | Yes |
ForwardConfig | ForwardConfigSet | 转发服务节点相关配置。 具体结构详见 ForwardConfigSet | No |
ForwardConfigSet
字段名 | 类型 | 描述信息 | 必填 |
---|---|---|---|
Targets | array[ForwardTargetSet] | 转发的后端服务节点。限定在监听器的服务节点池里;数组长度可以为0。具体结构详见 ForwardTargetSet | Yes |
ForwardTargetSet
字段名 | 类型 | 描述信息 | 必填 |
---|---|---|---|
Id | string | 服务节点的标识ID | Yes |
Weight | int | 权重。仅监听器负载均衡算法是加权轮询是有效;取值范围[1-100],默认值为1 | No |
响应字段
字段名 | 类型 | 描述信息 | 必填 |
---|---|---|---|
RetCode | int | 返回状态码,为 0 则为成功返回,非 0 为失败 | Yes |
Action | string | 操作指令名称 | Yes |
Message | string | 返回错误消息,当 RetCode 非 0 时提供详细的描述信息 | No |
RuleId | int | 转发规则的ID | No |
示例
请求示例
curl 'https://api.an-link.com' \
--header 'Content-Type: application/json' \
--data '{
"Action": "CreateRule",
"Region": "cn-bj2",
"ProjectId": "org-XXXXX",
"LoadBalancerId": "alb-XXXXX",
"ListenerId": "als-XXXXX",
"RuleConditions": [
{
"Type": "Host",
"HostConfig": {
"MatchMode": "Regular",
"Values": ["www.test.com"]
}
},
{
"Type": "Path",
"PathConfig": {
"Values": ["/abc"]
}
}
],
"RuleActions": [
{
"Type": "Forward",
"ForwardConfig": {
"Targets": [
{
"Id": "ars-XXXXX",
"Weight": 1
}
]
}
}
]
}'
响应示例
{
"Action": "CreateRuleResponse",
"RetCode": 0,
"RuleId": "rule-XXXXX"
}