您开发的插件可以通过发布插件的方式上传到插件市场。只有当前主账号或具有云原生API网关权限的子账号可以看到并使用该插件。插件启用方式和平台提供插件一致。
操作步骤
登录云原生API网关控制台。
在左侧导航栏,选择插件,并在顶部菜单栏选择地域。
在插件市场页面的右上角单击发布插件。
在发布插件面板,填写插件参数信息,单击上传,等待插件发布成功(此过程可能需要30秒左右)。
参数
描述
选择语言
选择编写插件时使用的开发语言。
插件标识
设置插件的英文标识(唯一标识)。
插件名称
设置插件的中文名称。
插件描述
填写用途说明,会显示在创建完成后的插件卡片中。
版本描述
填写插件的版本描述信息。
WASM文件
上传本地编译构建生成的插件二进制文件。文件名需要包含 ".wasm" 后缀。
执行阶段
阶段处理顺序:认证阶段 > 鉴权阶段 > 统计阶段 > 默认阶段。若不依赖其他插件执行顺序,填写默认阶段即可。
执行优先级
控制执行阶段内的优先级,数字越大优先级越高。若需定制,建议填写10的整数倍,预留好空间。
适配网关版本
选择任意版本或指定版本。
任意版本:可以安装到任意版本的网关。
指定版本:仅可以安装到指定版本(含)之后的网关版本。
插件执行顺序说明
按照执行阶段和执行优先级,可以确定多个插件在处理请求和应答时的相对顺序。需要注意的是,处理客户端请求的顺序和处理后端应答的顺序是相反的,即越早处理请求的插件,越晚处理应答。
插件执行顺序由插件执行阶段和插件执行优先级两个参数共同决定,对请求和应答的处理顺序如下图所示:
在平台提供插件的详情中,可以看到执行阶段和执行优先级的信息,如果希望在特定平台插件执行前后插入自定义插件,可以配置自定义插件的插件执行阶段和插件执行优先级。
插件与策略优先级
以下插件与策略由上到下执行优先级依次降低。
名称 | 类型 | 执行阶段 | 优先级 | 备注 |
IP黑白名单 | 策略 | RBAC Filter | ||
http-real-ip | 插件 | 认证阶段 | 980 | 流量管控系列插件 |
ModelRouter | 插件 | 认证阶段 | 900 | AI-API 内置 |
ModelMapper | 插件 | 认证阶段 | 800 | AI-API 内置 |
前端灰度 | 插件 | 认证阶段 | 450 | 传输协议系列插件 |
IP地理位置 | 插件 | 认证阶段 | 440 | 传输协议系列插件 |
DeGraphQL | 插件 | 认证阶段 | 430 | 传输协议系列插件 |
浏览器缓存控制 | 插件 | 认证阶段 | 420 | 传输协议系列插件 |
请求/响应转换 | 插件 | 认证阶段 | 410 | 传输协议系列插件 |
OAuth2认证 | 插件 | 认证阶段 | 350 | 认证鉴权系列插件 |
JWT认证 | 插件 | 认证阶段 | 340 | 认证鉴权系列插件 |
HMAC认证 | 插件 | 认证阶段 | 330 | 认证鉴权系列插件 |
Basic认证 | 插件 | 认证阶段 | 320 | 认证鉴权系列插件 |
Key认证 | 插件 | 认证阶段 | 310 | 认证鉴权系列插件 |
外部认证 | 插件 | 认证阶段 | 300 | 认证鉴权系列插件 |
OPA | 插件 | 认证阶段 | 225 | 认证鉴权系列插件 |
请求校验 | 插件 | 认证阶段 | 220 | 传输协议系列插件 |
IP限制 | 插件 | 认证阶段 | 210 | 安全防护系列插件 |
JWT Logout | 插件 | 认证阶段 | 50 | 认证鉴权系列插件 |
通用响应缓存 | 插件 | 认证阶段 | 10 | 传输协议系列插件 |
跨域资源共享 | 插件 | 鉴权阶段 | 340 | 安全防护系列插件 |
WAF防护 | 插件 | 鉴权阶段 | 330 | 安全防护系列插件 |
请求屏蔽 | 插件 | 鉴权阶段 | 320 | 安全防护系列插件 |
机器人拦截 | 插件 | 鉴权阶段 | 310 | 安全防护系列插件 |
ai-data-masking | 插件 | 默认阶段 | 991 | AI系列插件 |
ai-statistics | 插件 | 默认阶段 | 990 | AI系列插件 |
ai-security-guard | 插件 | 默认阶段 | 850 | AI系列插件 |
ai-cache | 插件 | 默认阶段 | 800 | AI系列插件 |
ai-quota | 插件 | 默认阶段 | 750 | AI系列插件 |
ai-intent | 插件 | 默认阶段 | 700 | AI系列插件 |
ai-history | 插件 | 默认阶段 | 650 | AI系列插件 |
ai-token-ratelimit | 插件 | 默认阶段 | 600 | AI系列插件 |
ai-prompt-template | 插件 | 默认阶段 | 500 | AI系列插件 |
ai-prompt-decorator | 插件 | 默认阶段 | 450 | AI系列插件 |
ai-network-search | 插件 | 默认阶段 | 440 | AI系列插件 |
ai-transformer | 插件 | 默认阶段 | 410 | AI系列插件 |
ai-rag | 插件 | 默认阶段 | 405 | AI系列插件 |
traffic-tag | 插件 | 默认阶段 | 400 | 流量管控系列插件 |
ai-json | 插件 | 默认阶段 | 150 | AI系列插件 |
ai-proxy | 插件 | 默认阶段 | 110 | AI系列插件 |
canary-header | 插件 | 默认阶段 | 100 | 流量管控系列插件 |
基于Key集群限流 | 插件 | 默认阶段 | 20 | 流量管控系列插件 |
基于Key限流 | 插件 | 默认阶段 | 10 | 流量管控系列插件 |
并发控制/流量控制/熔断 | 策略 | Sentinel Filter | ||
超时/重试/流量复制/Header修改/HTTP重写/跨域 | 策略 | Router Filter |
常见问题
导致插件发布失败的原因可能是什么?
一般可能是生成的Wasm文件二进制格式不合法。关于在本地环境成功加载该Wasm文件的Demo示例,请参见使用Go语言开发网关插件。