kong添加自定义插件(一)

api网关kong支持自定义插件,但是如何添加一个自定义的插件?

通过admin api 添加一个kong原有的plugin,curl命令方式:curl -i -X POST --url http://192.168.74.111:8001/routes/3da2439b-5a54-4fc1-bf23-7969be09a845/plugins --data 'name=key-auth' 就可以给指定id的route添加插件,这个很简单,没啥难度

如果想添加一个自定义的插件,名称为url-rewrite的插件,如果直接调用上面ctrl命令是会报错的,我们需要修改源码

kong源码修改的正确姿势,我没有找到好的ide来写lua,同时kong的调试比较麻烦,我这里通过虚机里yum方式安装kong(docker安装的修改源码会比较麻烦),然后直接在虚机中修改源码,这种方式很不友好,但是目前也没有好的方式可以在windows下完成调试,如果有好的方式实现debug调试,还请告诉一下,万分感谢!!!

那么这篇文章要完成的就是通过调用admin api方式添加一个名称为url-rewrite的自定义插件,废话不多说,干吧

1、版本

     我这里虚机是在centos6下,安装了kong最新版本1.0,数据库用到的是postgresql10,关于kong及数据库的安装可参照之前的博客。

2、修改文件位置

    linux下kong的文件在哪?/usr/local/share/lua/5.1/kong,这个目录下的文件是kong的源码

3、修改文件

1.需要修改constants.lua文件,在plugins中添加自定义插件名称url-rewrite。

2.进入plugins目录,新建url-writer的文件夹,并创建handler.lua文件和schema.lua文件,handler.lua文件中是插件主要的逻辑,需要继承baseplugin。根据不同阶段完成需要的逻辑。

3.handler.lua文件

这里注意UrlRewriteHander.PRIORITY 是插件执行的顺序。UrlRewriteHander.VERSION是插件的版本。local UrlRewriteHander = BasePlugin:extend(),自定义变量(local指定位非全局变量)UrlRewriteHander并继承baseplugin,接下来是逻辑部分,最后不要忘了return自定义变量。

4.schema.lua文件

 

kong1.0版本中插件有修改,增加了name字段,这里必须要返回你自定义的名称,不然会报错,fields中是对字段的约束

修改完成后重启kong ,指定curl命令,就可以添加插件了。

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值