kong笔记——自定义插件 目录及部署
kong笔记 目录导航
简述
本文目标:
- 了解kong插件的基本信息
- 手动部署自定义插件
注意:本文不涉及自定义插件的开发,仅仅说明自定义插件的目录结构与部署方式
目录结构
基本插件模块
两个必须的文件:
simple-plugin
├── handler.lua
└── schema.lua
高级插件的模块:
除了handler.lua、schema.lua外,还包含:
complete-plugin
├── api.lua
├── daos.lua
├── handler.lua
├── migrations
│ ├── cassandra.lua
│ └── postgres.lua
└── schema.lua
以下是具体的说明:
模块文件名称 | 是否必须 | 描述 |
---|---|---|
api.lua | No | 定义Admin API中可用的端点列表,以与插件处理的实体自定义实体进行交互。 |
daos.lua | No | 定义DAO(数据库访问对象)列表,这些DAO是插件所需并存储在数据存储区中的自定义实体的抽象。 |
handler.lua | Yes | 一个接口的实现。每个函数都由Kong在请求的生命周期中的所需时刻运行。 |
migrations/xxxx.lua | No | 给定数据存储的相应迁移。只有当您的插件必须在数据库中存储自定义实体并通过daos.lua定义的其中一个DAO与它们进行交互时,才需要进行迁移。 |
schema.lua | Yes | 保存插件配置的架构,以便用户只能输入有效的配置值。 |
通俗点来讲:
handler.lua:是实现kong各个阶段生命周期的业务逻辑接口;
schema.lua:是传递给表单需要配置的参数,让用户自己自定义配置。
对于kong的生命周期,在kong笔记——认识kong本篇已经说过了,就不在详述了
部署插件
官方提供了两种方式:
- 通过LuaRocks;(没试过,暂时部讲)
- 手动
手动的方式有两种:
- 自定义你插件的存放位置(自动化好,比如自定义dockerfile+k8s部署)
- 将插件放到kong 插件默认的位置(测试时方便,生产环境非常不建议!!!!!)
自定义插件位置
采用此方式的时候,必须符合kong官方的规则:
整体步骤
编写好你自己写好的插件,并存储到你自定义的位置(自定义位置一定要以
/kong/plugins/
结尾的,不然会扫描不到!!!!!!!!!!!);在kong.conf中指定lua扫描的路径
lua_package_path = /<path-to-plugin-location>/kong/plugins/?.lua;;
如果你配置了多个插件,而这些插件又放到了多个路径,则:
lua_package_path = /<path-to-plugin-location>/kong/plugins;/<path-to-plugin-location2>/kong/plugins/?.lua;;
;;
代表默认路径;
代表扫描路径加载插件
在kong.conf中引入plugins = bundled,<plugin-name>
如果你不需要kong自带的插件,可以取消掉
bundled
重启kong
kong reload
example
我们这里要发布一个change-log
的插件(此插件是拷贝kong默认插件的 file-log)
新建一个目录,暂时命名为
/opt/share/kong/plugins
拷贝file-log(kong默认的位置:
/usr/local/share/lua/5.1/kong/plugins
)
修改kong.conf文件(
/etc/kong
),主要修改两部分,lua的扫描路径以及kong加载你自定义的插件# 添加自定义插件工作目录 lua_package_path = /opt/share/?.lua;;# 启用插件: change-log # bundled: 表示Kong, 自带插件 plugins = bundled, change-log
重启kong即可
kong reload
kong默认的位置
整体步骤
编写好你自己写好的插件,并存储到
/usr/local/share/lua/5.1/kong/plugins/change-log
;加载插件
在kong.conf中引入plugins = bundled,<plugin-name>
如果你不需要kong自带的插件,可以取消掉
bundled
在
/usr/local/share/lua/5.1/kong/
目录下,找到constants.lua
文件,在local plugins
table中添加你的插件名称重启kong
kong reload
example
我们这里要发布一个change-log
的插件(此插件是拷贝kong默认插件的 file-log)
创建
change-log
插件
修改kong.conf
# 启用插件: change-log # bundled: 表示Kong, 自带插件 plugins = bundled, change-log
修改
constants.lua
文件重启kong
kong reload
最后效果如下:
kong笔记——自定义插件 目录及部署相关推荐
- kong笔记——自定义插件开发
kong笔记 目录导航 本文通过一个自定义插件的编写,来了解Kong的插件机制 插件功能: 原本返回百度首页,在添加插件之后,返回插件自定义的内容: 前提 使用kong代理百度的接口,配置route路 ...
- kong笔记 目录导航
官方文档 官方网站:https://konghq.com 官方文档:https://docs.konghq.com 项目地址:https://github.com/Kong/kong 中文文档:htt ...
- kong笔记——kong/konga的搭建
kong笔记 目录导航 本篇及以后的此系列文章皆为实战篇 版本介绍(重点,重点,一定要观察版本,防止不兼容情况!!): kong 2.5.0 konga 0.14.9 pgsql 9.6 linux ...
- kong笔记——kong的权限认证插件选择参考
kong笔记--目录导航 kong自身共提供了这么几个权限认证插件: basic auth; key auth; hmac auth; jwt auth; oauth2 auth 接下来来逐个介绍其特 ...
- streamsets自定义插件部署方案
streamsets data collector新增upsert 4 mysql 目录 1.背景简介 2.部署步骤 2.1 cm界面操作 2.2上传驱动包 2.3 上传插件 2.4选择pipelin ...
- android插件做动态权限,Mui本地打包笔记(四)Android自定义插件的配置(以动态申请权限为例)...
通过自定义插件方式实现Android平台的动态申请权限功能 在上一章中完成了在Mui中调用Android原生的动态权限请求功能(Android动态申请权限的问题).虽然说完成了功能,但是在使用上并不是 ...
- kong笔记——认识kong
kong笔记 目录导航 背景 最近公司打算重构API网关,给定的硬性条件是支持lua脚本,kubernetes可部署,可解析lua,另外需要支持身份认证,IP黑白名单,限流,负载均衡等一些功能,为此, ...
- kong笔记——Service、Route路由功能
kong笔记 目录导航 在上两篇文章,我们主要介绍了kong的概念以及kong的部署,相信大家对kong已经有了基本认识,那么我们该如何使用它呢? kong的功能有许多,我们一个一个来,先从kong的 ...
- Wiz Editor md 为知笔记 Markdown 插件
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! Wiz. ...
最新文章
- 使用高精度旋转编码器BH60测量步进电机转动角度
- 如何用Graphpad Prism 9作时间轴图
- JDK8新特性之Lambda表达式
- linux vi 出现下划线,Vim高亮当前行(显示为下划线)的解决方案
- 大乐透python预测程序_Python生成随机验证码,大乐透号码
- mybatis工作总结001_mybatis中_parameter使用和常用sql
- 解决Android 音频Xrun问题
- 远程桌面连接-GPU加速
- VS 中PageLayout 属性设置
- [转载] Netty
- 开源项目halo个人博客源码学习初篇(一)
- Kali2019解决无法定位软件包
- Chrome插件开发练习 - 还未完成
- ACPYPE中FAILED: [Errno 2] No such file or directory: 'FFF_AC.prmtop'的解决方法
- 金融科技之能量守恒定律
- Idea查看所有断点
- 前端工程师能够用很低的学习本钱来运用它完成常用的效劳端代码
- 速卖通商标授权怎么弄?速卖通官方授权模板书分享
- [VisualStudio实战]VS2013 ERROR C2011 C2375 C2059 C3805 C3861问题解决
- 部队文职计算机专业技术岗面试,军队文职计算机类面试题-广东军队人才网