apisix网关使用自研插件流程
1. 关于apisix网关插件
apisix插件分为内置插件和自编插件,本文主要介绍使用自研插件的流程,内置插件使用方法参考官方文档
内置插件官方文档:https://apisix.apache.org/zh/docs/apisix/plugins/batch-requests/
2. 使用自研插件的实现步骤
apisix支持多种语言自研插件,本文主要介绍使用go语言编写自研脚本。
自研插件官方文档:https://apisix.apache.org/zh/docs/apisix/external-plugin/
自研插件使用前期配置工作
一,在value.yaml中增加配置Plugin Runner
二,添加自研插件
1,构建包含自研插件的apisix镜像
clone项目到本地
git clone https://github.com/apache/apisix-go-plugin-runner.git
cmd文件夹是存放插件的目录,我们开发的Go插件api_signature.go将放在cmd/go-runner/plugins这里。看一下cmd文件目录组织方式
root@JamesLee:/mnt/d/code/apisix-go-plugin-runner# tree cmd
cmd
└── go-runner
├── main.go
├── main_test.go
├── plugins
│ ├── fault_injection.go
│ ├── fault_injection_test.go
│ ├── limit_req.go
│ ├── limit_req_test.go
│ ├── response_rewrite.go
│ ├── response_rewrite_test.go
│ ├── api_signature.go
│ ├── say.go
│ └── say_test.go
└── version.go
插件代码完成后,在项目根目录下进行make build, 正常情况下就在本目录下生成二进制文件go-runner。
build 包含自研插件的镜像
Dockerfile如下
FROM apache/apisix:3.2.0-debian
COPY ./go-runner /usr/local/apisix-go-plugin-runner/go-runner
docker build -f Dockerfile -t apache/apisix:3.2.0-debian-gogogo .
apisix使用apache/apisix:3.2.0-debian-gogogo镜像
三,使用自研插件
创建路由时增加plugins字段即
"plugins": {
"ext-plugin-pre-req": {
"allow_degradation": false,
"conf": [
{
"name": "api-signature",
"value": "{\"ccc\":\"eeee\"}"
}
]
}
也可通过dashboard添加插件,需在插件ext-plugin-pre-req数据编辑器内输入如下内容
{
"_meta": {
"disable": false
},
"conf": [
{
"name": "api-signature",
"value": "{\"ccc\":\"eeee\"}"
}
]
}
至此,添加自研插件配置过程完毕,更多apisix使用细节请参考官方文档
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 上周热点回顾(2.17-2.23)