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使用细节请参考官方文档
                    
                
                
            
        
浙公网安备 33010602011771号