更多策略与插件

AI 网关支持对API级进行添加策略和配置插件,提高API的安全性、性能和可维护性。

重要

策略配置修改后即时生效,无需重新发布。

操作步骤

  1. 打开AI网关控制台实例页面,在顶部菜单栏选择目标实例所在地域,并单击目标实例ID

  2. 在左侧导航栏,单击Model API,然后单击目标API名称进入API详情页面。

  3. 单击策略与插件页签,然后在更多策略与插件区域,选择需要配置策略或插件的位置(入站处理/出站处理),并单击启用策略/插件

  4. 启用策略/插件面板中,选择策略或插件进行配置。详情请参见策略配置插件配置

策略配置

并发控制

并发规则的原理是统计当前网关处理中的请求数之和,当指标达到设定的阈值时立即拦截流量,可配置为后端服务的最大并发处理请求数,实现在高并发下的后端服务可用性保护。

操作步骤

您可在添加策略页签,单击并发控制卡片,在添加策略: 并发控制面板配置相关参数。

配置项

说明

是否开启

开启后,并发规则生效。

总体并发数阈值

设置总体并发数阈值

Web fallback 行为

返回指定内容

HTTP状态码

设置HTTP状态码。默认为429。

返回 content-type

选择返回 content-type普通文本JSON

HTTP 返回文本

输入返回文本。

返回指定内容

跳转地址

输入跳转地址

流量控制

流控规则的原理是监控APIQPS指标,当指标达到设定的阈值时立即拦截流量,避免后端服务被瞬时的流量高峰冲垮,从而保障高可用性。

操作步骤

您可在添加策略页签,单击流量控制卡片,在添加策略: 流量控制面板配置相关参数。

配置项

说明

是否开启

开启后,流量控制规则生效。

总体QPS阈值

设置总体QPS阈值

Web fallback 行为

返回指定内容

HTTP状态码

设置HTTP状态码。默认为429。

返回 content-type

选择返回 content-type普通文本JSON

HTTP 返回文本

输入返回文本。

跳转到指定页面

跳转地址

输入跳转地址

熔断策略

熔断规则的原理是监控API的响应时间或异常比例,当达到指定的阈值时立即降低依赖优先级。在指定的时间内,系统不会调用该不稳定的资源,避免后端服务受到影响,从而保障后端的高可用性。当指定时间过后,再重新恢复对该资源的调用。

操作步骤

您可在添加策略页签,单击熔断卡片,在添加策略: 熔断面板配置相关参数。

配置项

说明

是否开启

开启后,熔断规则生效。

统计窗口时长

统计的时间窗口长度,取值范围为1秒~120分钟。

最小请求数目

触发熔断的最小请求数目,若当前统计窗口内的请求数小于此值,即使达到熔断条件规则也不会触发。

阈值类型

选择以慢调用比例(%)异常比例(%)作为阈值。

  1. 选择以慢调用比例(%)作为阈值,需要设置允许的慢调用RT(即最大的响应时间),请求的响应时间大于该值则统计为慢调用。在降级阈值中设置触发熔断的慢调用比例。规则开启后,在单位统计时长内请求数目大于设置的最小请求数目,并且慢调用的比例大于阈值,则接下来的熔断时长内请求会自动被熔断。经过熔断时长后,熔断器会进入探测恢复状态,若接下来的一个请求响应时间小于设置的慢调用RT,则结束熔断;若大于设置的慢调用RT,则会再次被熔断。

  2. 选择以异常比例(%)作为阈值,需要在降级阈值中设置触发熔断的异常比例。规则开启后,在单位统计时长内业务异常数目大于设置的最小请求数目,并且异常的比例大于阈值,则接下来的熔断时长内请求会自动被熔断。

慢调用RT

设置允许的慢调用RT(即最大的响应时间)。

熔断比例阈值

触发熔断的慢调用比例阈值,取值范围 0-100(代表 0%-100%)。

熔断时长(s)

即熔断触发后持续的时间。资源进入熔断状态后,在配置的熔断时长内,请求都会快速失败。

Web fallback 行为

返回指定内容

HTTP状态码

设置HTTP状态码。默认为429。

返回 content-type

选择返回 content-type普通文本JSON

HTTP 返回文本

输入返回文本。

跳转到指定页面

跳转地址

输入跳转地址

IP黑白名单策略

IP 黑白名单策略的原理是通过预先配置允许或拒绝访问的 IP 地址列表,控制客户端对服务的访问权限。

操作步骤

您可在添加策略页签,单击IP黑白名单卡片,在添加策略:IP黑白名单面板配置相关参数。

参数

描述

开启

开启后,IP黑白名单策略生效。

名称

自定义标识名称,用于在多个策略中进行区分和管理。

备注

策略描述信息,便于识别和管理。

类型

指定为黑名单或白名单,控制访问策略类型。

  • 白名单 :仅允许指定的 IP 地址访问服务,其余默认拒绝。

  • 黑名单 :阻止特定 IP 地址访问服务,其余默认允许。

IP地址/地址段

配置允许或拒绝访问的 IP 地址列表或地址段,支持多个条目,格式如192.168.1.1/24

超时策略

AI 网关提供API级别的超时设置,您可以按需为指定API配置网关等待请求响应结果的最大时间。如果网关在设定的时间内未收到后端服务的响应,将向客户端返回一个 HTTP 状态码为 504(Gateway Timeout)的响应结果。

操作步骤

您可在添加策略页签,单击超时卡片,在添加策略:超时面板配置相关参数。

说明

超时策略配置完成且开启后,请根据实际业务验证服务超时规则是否生效。

参数

描述

开启

是否开启超时策略。

  • 开启:网关API超时策略生效。

  • 关闭:网关API超时策略失效。

超时时间

为当前API设置超时时间,单位为秒。

说明

当设置为0或者关闭超时策略时,表示网关会一直等待请求的响应结果。

重试策略

AI 网关提供API级别的重试设置,可以对出错的请求进行自动重试。您可以根据需求配置重试条件,例如在连接失败、后端服务不可用,或者接收到指定的HTTP状态码时触发请求重试。

API的重试条件

当后端服务返回5xx错误时,AI 网关按照设置的重试次数对出错的请求自动进行重试。

image
  • HTTP协议的重试条件如下:

    • 5xx:如果后端服务返回任何5xx响应,或者发生连接断开、重置、读取超时事件,AI 网关将尝试对出错请求进行重试。

      说明

      5xx包含connect-failurerefused-stream的条件。

    • reset:如果发生连接断开、重置、读取超时事件,AI 网关将尝试对出错请求进行重试。

    • connect-failure:如果请求是由连接断开导致的出错,AI 网关将尝试对出错请求进行重试。

    • refused-stream:如果后端服务以REFUSED_STREAM错误代码来重置流,AI 网关将尝试对出错请求进行重试。

    • retriable-status-codes:如果后端服务响应结果的HTTP状态码匹配上您指定的重试状态码,AI 网关将尝试对该请求进行重试。

      说明

      只有在重试条件中指定了retriable-status-codes,才能使用重试状态码。

  • gRPC协议的重试条件如下:

    • cancelled:如果后端gRPC服务的响应头部中的gRPC状态码为cancelled,AI 网关将尝试对该请求进行重试。

    • deadline-exceeded:如果后端gRPC服务的响应头部中的gRPC状态码为deadline-exceeded,AI 网关将尝试对该请求进行重试。

    • internal:如果后端gRPC服务的响应头部中的gRPC状态码为internal,AI 网关将尝试对该请求进行重试。

    • resource-exhausted:如果后端gRPC服务的响应头部中的gRPC状态码为resource-exhausted,AI 网关将尝试对该请求进行重试。

    • unavailable:如果后端gRPC服务的响应头部中的gRPC状态码为unavailable,AI 网关将尝试对该请求进行重试。

操作步骤

您可在添加策略页签,单击重试卡片,在添加策略: 重试面板配置相关参数。

说明

重试策略配置完成且开启后,请根据实际业务验证服务重试规则是否生效。

参数

描述

开启

是否开启重试策略。

  • 开启:网关API重试策略生效。

  • 关闭:网关API重试策略失效。

    关闭重试后,网关内部有默认重试配置,重试次数默认为2次,重试条件默认为connect-failurerefused-streamunavailablecancellednon_idempotentretriable-status-codes

重试次数

设置对出错请求的最大重试次数。重试次数支持设置0~10次,建议不超过2次。

重试次数设置为0,表示取消重试。

重试条件

选择合适的,支持多选。

重试状态码

对特定HTTP状态码的响应进行重试,支持配置多种HTTP状态码。

重要

重试条件指定retriable-status-codes,才能配置重试状态码

Header修改策略

在将请求转发至目标后端服务之前,或在后端服务的响应返回给客户端之前,Header设置功能允许您修改原始请求中的头信息。

操作步骤

您可在添加策略页签,单击Header修改卡片,在添加策略: Header修改面板配置相关参数。

配置项

说明

开启

是否开启Header修改策略。

  • 开启:开启Header修改策略后,网关会控制请求和响应的Header。

  • 关闭:关闭Header修改策略后,网关不会控制请求和响应的Header。

Header类型

选择Header类型。

  • 请求:表示将会对请求的Header进行设置。

  • 响应:表示将会对响应的Header进行设置。

操作类型

选择操作类型。

  • 新增:向请求或响应新增一个Header。

    说明

    如果新增的Header已存在,那么Header Value将会拼接在已有的Header值后面,并通过英文逗号(,)分隔。

  • 修改:修改请求或响应指定的Header。

    说明

    • 如果指定的Header不存在,将会按照Header KeyHeader Value进行新增操作。

    • 如果指定的Header存在,将会进行覆盖修改操作。

  • 删除:删除请求或响应指定的Header。

Header Key

输入请求或响应的头部名。

Header Value

输入请求或响应的头部值。

插件配置

  1. 单击添加插件页签。

  2. 快捷导航处,选择要安装的插件类型或者搜索插件名称,单击插件卡片:

    • 如果插件未安装,在安装插件的弹出框中单击安装并配置,在启用插件的弹框中配置插件规则,并选择启用状态。

    • 如果插件已安装,在启用插件的弹框中,配置插件规则,并选择启用状态。

  3. 单击确定,返回API的挂载列表,可以看到API的插件挂载情况和启用状态。

    image