腾讯云微服务引擎 TSE - 插件管理
文档简介:
操作场景:
云原生 API 网关 Kong 提供插件管理功能,您可以在控制台上管理您的系统插件、原生插件、部署自定义插件等。本文介绍相关的插件定义和开发自定义插件并部署到云原生 API 网关 Kong 的操作步骤。
操作场景
云原生 API 网关 Kong 提供插件管理功能,您可以在控制台上管理您的系统插件、原生插件、部署自定义插件等。本文介绍相关的插件定义和开发自定义插件并部署到云原生 API 网关 Kong 的操作步骤。
插件介绍
系统插件是指云原生 API 网关在开源基础上提供的增强插件。
名称
|
类型
|
说明
|
tse-breaker
|
流量控制
|
查看插件说明
|
tse-traffic-mirror
|
流量控制
|
查看插件说明
|
tse-proxy-rewrite
|
请求转换
|
查看插件说明
|
tse-rate-limiting
|
流量控制
|
查看插件说明
|
tse-route
|
路由转发
|
查看插件说明
|
原生插件指开源 Kong 网关自带的插件。
名称
|
类型
|
说明
|
acl
|
安全
|
通过使用任意 ACL 组名称将消费者列入白名单或将其列入黑名单来限制对 Service 或者 Route 的访问。此插件需要在服务或路由上启用身份验证插件。
|
acme
|
认证鉴权
|
允许 Kong 使用来自 Let’s Encrypt 或者其他 ACMEv2 服务的证书,并且支持自动续期。
|
aws-lambda
|
无服务器
|
从 Kong 调用 AWS Lambda 函数。它可以与其他请求插件结合使用以保护,管理或扩展功能。
|
azure-functions
|
无服务器
|
从 Kong 调用 Azure上的无服务器函数。它可以与其他请求插件结合使用以保护,管理或扩展功能。
|
basic-auth
|
认证鉴权
|
使用用户名和密码保护将基础认证添加到 Service 或 Route 。
|
bot-detection
|
安全
|
保护服务或路由免受大多数常见机器人的攻击,并具有将自定义客户端列入白名单和列入黑名单的能力。
|
correlation-id
|
请求转换
|
使用通过 HTTP header 传输的唯一 ID 关联请求和响应。
|
cors
|
安全
|
通过启用此插件,轻松将跨源资源共享(CORS)添加到 Service, Route
|
datadog
|
分析和监控
|
记录 Service 的指标,并路由到本地 Datadog 代理。
|
file-log
|
日志
|
将请求和响应数据写入磁盘上的日志文件中。不建议在生产中使用此插件。
|
grpc-gateway
|
其他
|
通过 HTTP REST 接口公开 gRPC 服务。它以 JSON 格式转换请求和响应,允许通过普通 HTTP 请求访问上游 gRPC 服务。
|
grpc-web
|
其他
|
通过 gRPC-web 协议访问 gRPC 服务。
|
hmac-auth
|
认证鉴权
|
将 HMAC 签名身份验证添加到服务或路由以确定传入请求的完整性。该插件将验证在 Proxy-Authorization或Authorization header 中发送的数字签名(按此顺序)。
|
http-log
|
日志
|
将请求和响应数据转发到http服务器。
|
ip-restriction
|
安全
|
通过将 IP 地址列入白名单或列入黑名单来限制对 Service 或 Route 的访问,支持配置单个 IP,多个 IP 或 CIDR 范围,如10.10.10.0/24。
|
jwt
|
认证鉴权
|
验证包含 HS256 或 RS256 签名 JSON Web 令牌的请求。在请求中如果验证了令牌的签名,Kong 会将请求代理到您的上游服务,否则将丢弃该请求。
|
key-auth
|
认证鉴权
|
将密钥身份验证(有时也称为 API 密钥)添加到 Service 或 Route 。
|
ldap-auth
|
认证鉴权
|
使用用户名和密码保护将 LDAP 绑定身份验证添加到路由。 该插件将检查Proxy-Authorization和Authorization header 中的有效凭据(按此顺序)。
|
loggly
|
日志
|
通过 UDP 将请求和响应数据记录到 Loggly。
|
oauth2
|
认证鉴权
|
使用授权码模式(Authorization Code Grant),客户端凭证模式(Client Credentials),简化授权模式(Implicit Grant)或密码模式(Resource Owner Password Credentials Grant)授予流添加 OAuth 2.0身份验证层。
|
post-function
|
无服务器
|
在访问阶段运行其他插件之后运行一段 Lua 代码。
|
pre-function
|
无服务器
|
在访问阶段运行其他插件之前运行一段 Lua 代码。
|
prometheus
|
分析和监控
|
以 Prometheus exposition 格式公开与 Kong 和代理上游服务相关的指标,Prometheus 服务器可以对这些指标进行抓取。
|
proxy-cache
|
流量控制
|
基于可配置的响应代码和内容类型以及请求方法来缓存响应实体。它可以缓存每个 Consumer 或每个 API。
|
request-size-limiting
|
流量控制
|
限制body大于特定大小(以兆字节为单位)的传入请求。
|
request-termination
|
流量控制
|
使用指定的状态代码和消息终止传入请求。
|
request-transformer
|
请求转换
|
在将请求转发给上游服务之前,转换客户端发送的请求。
|
response-ratelimiting
|
流量控制
|
根据上游服务返回的自定义响应头限制可以发出的请求数。
|
response-transformer
|
请求转换
|
在将响应返回给客户端之前,转换上游服务发送响应。
|
session
|
认证鉴权
|
管理通过 Kong 代理的 API 的浏览器会话,它为会话数据存储、加密、续订、到期和浏览器 Cookie 提供配置和管理。
|
statsd
|
日志
|
为 Service Route 记录日志指标到一个 StatsD 服务器。
|
syslog
|
日志
|
将请求和响应数据转发到 syslog 服务器。
|
tcp-log
|
日志
|
将请求和响应数据转发到 TCP 服务器。
|
udp-log
|
日志
|
将请求和响应数据转发到 UDP 服务器。
|
zipkin
|
日志
|
传播 Zipkin 分布式跟踪 span,并向 Zipkin 服务器报告 span。
|
云原生 API 网关 Kong 提供自定义插件能力扩展,您可按照 Kong 规定的数据格式,开发自己的定制插件,以实现对数据流的修改和深层次的集成。详细操作请参考使用自定义插件。
准备自定义插件代码
根据 kong lua 插件开发规范:Plugin Development - File Structure - v2.7.x | Kong Docs,自定义插件在保留 Kong 原生插件开发规范的情况下,同时还支持了so 库的能力,建议 so 库在 Centos7 的环境下编译。
插件目录结构可以参照如下:

进入插件管理入口
1. 登录 TSE 控制台。
2. 在左侧导航栏单击云原生 API 网关 > 插件管理,在页面上方选择好网关实例,可以查看系统插件、原生插件和自定义插件信息。


部署自定义插件
1. 参考 插件介绍-自定义插件 准备好插件代码。
2. 在插件管理页面,选择自定义插件页页签,单击上传插件。

3. 选择插件后,填写好插件版本号和版本描述信息,单击确定,完成上传。
4. 上传完插件后,单击切换到此版本,插件会自动部署在所有的 Kong 节点中。

5. 当您不再需要该插件时,可以单击插件右上角的卸载,卸载该插件。