本接口用于添加转发规则。转发规则指定如何将来自客户端的请求转发到后端服务器。
前提条件:
说明
边缘容器目前处于公测阶段。如需使用边缘容器,请提交公测申请。
下表列出了接口特定的请求参数以及公共请求参数 Action 和 Version。 其他公共参数,请参见公共参数。
参数 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
Action | String | 是 | AddRule | 接口名称。当前 API 的名称为 AddRule 。 |
Version | String | 是 | 2021-04-30 | 接口版本。当前 API 的版本为 2021-04-30 。 |
参数 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
lb_identity | String | 是 | veew-lb79442102222490330**** | 负载均衡实例的 ID。您可以调用 ListLB7Instances 接口查询负载均衡实例的 ID。 |
listener_identity | String | 是 | res-0094030018300329**** | 监听器的 ID。您可以调用 ListLB7Listener 接口查询监听器的 ID。 |
name | String | 是 |
| 转发规则的名称。同一火山引擎账号下的转发规则的名称必须唯一。
|
domain | String | 是 | www.example.com | 域名。该域名需已添加到边缘计算节点服务中。添加域名的具体操作,请参见添加域名。 |
ssl_type | Integer | 否 |
| SSL 解析方式。取值范围:
说明 该参数仅适用于 HTTPS 监听器。使用 HTTPS 监听器时,必须指定该参数。 |
client_cert_ref | String | 否 |
| 客户端 CA 证书的 ID。证书必须是“已签发”状态且在有效期内。 说明 该参数仅适用于 HTTPS 监听器。 |
server_cert_ref_list | []String | 是 |
|
|
path_list | []PathList | 是 | 见下文说明 | 转发路径列表。 |
custom_param | 否 |
| 自定义参数。 说明 该参数仅适用于以下场景:后端服务器为边缘容器。 | |
custom_retry_list | 否 |
| 自定义重试规则。 说明 该参数仅适用于以下场景:后端服务器为边缘容器。 |
参数 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
path | String | 是 |
| 转发路径。取值须符合以下要求:
|
rs_group | RsGroup | 是 | 见下文说明 | 后端服务器组的信息。 |
参数 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
loadbalance_strategy | String | 是 |
| 负载均衡策略。取值范围:
|
health_check | HealthCheck | 否 | 见下文说明 | 健康检查配置。如果不配置 health_check,代表不开启健康检查。 |
sticky_session | StickySession | 否 | 见下文说明 | 会话保持配置。如果不配置 sticky_session,代表不开启会话保持。 |
rs_list | []RsList | 是 | 见下文说明 | 后端服务器的列表。 |
参数 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
protocol | String | 是 |
| 健康检查协议。取值范围:
|
port | Integer | 否 |
| 健康检查端口。取值范围:1~65535。 |
interval | Integer | 是 |
| 健康检查间隔。 |
response_timeout | Integer | 是 |
| 响应超时时间。在指定时间内,如果监听器没有收到后端服务器的响应,则判定为响应超时。 |
unhealth_threshold | Integer | 是 |
| 不健康阈值,即连续健康检查失败的次数上限。超过这个阈值,后端服务器将被认定为异常,然后会被从服务器池中移除。 |
health_threshold | Integer | 是 |
| 健康阈值,即连续健康检查成功的次数上限。超过这个阈值,后端服务器将被认定为正常,然后会被重新添加到服务器池。 |
http_host | String | 否 |
| 健康检查域名。取值须符合以下要求:
说明 该参数仅适用于 HTTP 健康检查。健康检查协议为 HTTP 时,必须指定该参数。 |
http_path | String | 否 |
| 检查路径。检查路径是用于健康检查的页面的 URL。建议配置静态页面的 URL。
说明 该参数仅适用于 HTTP 健康检查。健康检查协议为 HTTP 时,必须指定该参数。 |
http_success_codes | String | 否 |
| 表示健康检查成功的状态码。多个状态码之间使用半角逗号(,)分隔。取值范围:
说明 该参数仅适用于 HTTP 健康检查。健康检查协议为 HTTP 时,必须指定该参数。 |
http_method_type | String | 否 |
| 健康检查方法。取值范围:
说明 该参数仅适用于 HTTP 健康检查。健康检查协议为 HTTP 时,必须指定该参数。 |
http_version | String | 否 |
| HTTP 协议版本。取值范围:
说明 该参数仅适用于 HTTP 健康检查。健康检查协议为 HTTP 时,必须指定该参数。 |
参数 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
cookie_deal_type | Integer | 是 |
| Cookie 处理方式。取值范围:
|
cookie_timeout | Integer | 否 |
| 会话保持超时时间。 说明 当 cookie_deal_type 值为 1 时,必须指定 cookie_timeout。 |
cookie_name | String | 否 |
| Cookie 名称。取值需满足以下要求:
说明 当 cookie_deal_type 值为 2 时,必须指定 cookie_name。 |
参数 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
identity | String | 是 |
| 后端服务器的 ID。 |
port | Integer | 是 | 80 | 后端服务器的端口。 |
weight | Integer | 是 |
| 后端服务器的权重。单位:%。 说明 该参数仅适用于以下场景:后端服务器为边缘实例。 |
参数 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
proxy_body_size | String | 否 | 1024k | 代理服务器接收的请求体大小。取值范围:1~1024。取值需要包含单位:k/K,m/M 或 g/G。 |
ssl_buffer_size | String | 否 |
| 缓冲区大小。取值范围:
说明 该参数仅适用于 HTTPS 监听器。 |
参数 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
status_code | String | 是 |
| 状态码。多个状态码之间使用半角逗号(,)分隔。最多允许 5 个状态码。 |
application_identity | String | 是 | veecc-255622122036230**** | 边缘应用 ID。您可以调用 ListApplications 获取边缘应用的列表。 |
workload_identity | String | 是 | res-4201065452244652**** | 工作负载 ID。您可以调用 ListWorkloads 获取工作负载的列表。 |
port | Integer | 是 | 80 | Service 端口。 |
参数 | 类型 | 示例值 | 描述 |
---|---|---|---|
rule_identity | String | res-1004006130411632**** | 转发规则的 ID。 |
POST https://veenedge.volcengineapi.com/?Action=AddRule&Version=2021-04-30 { "lb_identity": "veew-lb70204100444012074****", "listener_identity": "res-4044414421464414****", "name": "rule_01", "domain": "www.example.com", "server_cert_ref_list": [ null ], "path_list": [ { "path": "/test", "rs_group": { "loadbalance_strategy": "wrr", "health_check": { "protocol": "HTTP", "port": 80, "interval": 2, "response_timeout": 5, "unhealth_threshold": 3, "health_threshold": 3, "http_host": "www.example.com", "http_path": "/test", "http_success_codes": "Code2xx", "http_method_type": "GET", "http_version": "1.1" }, "sticky_session": { "cookie_deal_type": 1, "cookie_timeout": 120 }, "rs_list": [ { "identity": "veen0642211172016766****", "port": 80, "weight": 50 } ] } } ] }
{ "ResponseMetadata": { "RequestId": "20240619140928829F950358C1DD26****", "Action": "AddRule", "Version": "2021-04-30", "Service": "veenedge", "Region": "cn-north-1" }, "Result": { "rule_identity": "res-0444414400190294****" } }
如果响应正文中包含 Error 字段,则表示 API 请求失败。关于错误码的更多信息,参见错误码。