插件
插件是一种模块化组件,用于拦截并修改通过网关的请求和响应流。API7 网关内置 100 多个企业级插件,覆盖认证 、流量控制、可观测性、安全和 AI 能力。
插件执行
插件会按照其 Priority 以特定顺序执行。Priority 数值更高的插件会先于数值更低的插件运行。这可以确保认证等基础功能先于流量控制或代理转发完成。
插件作用域
你可以在配置层级的不同级别应用插件:
- 路由级别:应用于特定路由。仅影响匹配该路由的流量。
- 服务级别:应用于某个服务。影响该服务内的所有路由。
- 消费者级别:应用于特定消费者。影响识别为属于该消费者的所有流量。
- 全局规则:应用于整个网关组。影响该网关组管理的所有路由。
插件类别
API7 网关会按主要功能对插件进行分类。下表列出了一些常用企业插件示例:
| 类别 | 示例 |
|---|---|
| 认证 | key-auth, jwt-auth, basic-auth, hmac-auth, openid-connect, ldap-auth, multi-auth |
| 流量控制 | limit-count, limit-req, limit-conn, limit-count-advanced, api-breaker, traffic-split |
| 转换 | proxy-rewrite, response-rewrite, body-transformer, grpc-transcode |
| 可观测性 | prometheus, opentelemetry, http-logger, kafka-logger, loki-logger, splunk-hec-logging |
| 安全 | cors, ip-restriction, ua-restriction, consumer-restriction, csrf, data-mask, opa, chaitin-waf |
| AI 网关 | ai-proxy, ai-proxy-multi, ai-rate-limiting, ai-rag, ai-prompt-template, ai-prompt-guard |
| Serverless | aws-lambda, azure-functions, serverless-pre-function, serverless-post-function |
插件元数据
部分插件需要在该插件类型的所有实例之间共享配置。这通过 插件元数据 管理。例如,你可以在 kafka-logger 元数据中定义共享的 Kafka broker 地址,随后该插件的所有实例都会使用该地址。
后续步骤
- 配置限流 — 保护服务免受流量突增影响。
- 开发自定义 Lua 插件 — 使用自定义逻辑扩展网关。
- 服务与路由 — 了解插件如何挂载到服务和路由。