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本篇已经说过了,就不在详述了

部署插件

官方提供了两种方式:

  1. 通过LuaRocks;(没试过,暂时部讲)
  2. 手动

手动的方式有两种:

  • 自定义你插件的存放位置(自动化好,比如自定义dockerfile+k8s部署)
  • 将插件放到kong 插件默认的位置(测试时方便,生产环境非常不建议!!!!!

自定义插件位置

采用此方式的时候,必须符合kong官方的规则:

整体步骤

  1. 编写好你自己写好的插件,并存储到你自定义的位置(自定义位置一定要以/kong/plugins/结尾的,不然会扫描不到!!!!!!!!!!!);

  2. 在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;;
    

    ;;代表默认路径

    ;代表扫描路径

  3. 加载插件
    在kong.conf中引入

    plugins = bundled,<plugin-name>
    

    如果你不需要kong自带的插件,可以取消掉 bundled

  4. 重启kong

    kong reload
    

example

我们这里要发布一个change-log的插件(此插件是拷贝kong默认插件的 file-log)

  1. 新建一个目录,暂时命名为/opt/share/kong/plugins

  2. 拷贝file-log(kong默认的位置:/usr/local/share/lua/5.1/kong/plugins)

  3. 修改kong.conf文件(/etc/kong),主要修改两部分,lua的扫描路径以及kong加载你自定义的插件

    # 添加自定义插件工作目录
    lua_package_path = /opt/share/?.lua;;# 启用插件: change-log
    #  bundled: 表示Kong, 自带插件
    plugins = bundled, change-log
    

  4. 重启kong即可

    kong reload
    

kong默认的位置

整体步骤

  1. 编写好你自己写好的插件,并存储到/usr/local/share/lua/5.1/kong/plugins/change-log

  2. 加载插件
    在kong.conf中引入

    plugins = bundled,<plugin-name>
    

    如果你不需要kong自带的插件,可以取消掉 bundled

  3. /usr/local/share/lua/5.1/kong/目录下,找到constants.lua文件,在 local plugins table中添加你的插件名称

  4. 重启kong

    kong reload
    

example

我们这里要发布一个change-log的插件(此插件是拷贝kong默认插件的 file-log)

  1. 创建change-log插件

  2. 修改kong.conf

    # 启用插件: change-log
    #  bundled: 表示Kong, 自带插件
    plugins = bundled, change-log
    
  3. 修改constants.lua文件

  4. 重启kong

    kong reload
    

最后效果如下:

kong笔记——自定义插件 目录及部署相关推荐

  1. kong笔记——自定义插件开发

    kong笔记 目录导航 本文通过一个自定义插件的编写,来了解Kong的插件机制 插件功能: 原本返回百度首页,在添加插件之后,返回插件自定义的内容: 前提 使用kong代理百度的接口,配置route路 ...

  2. kong笔记 目录导航

    官方文档 官方网站:https://konghq.com 官方文档:https://docs.konghq.com 项目地址:https://github.com/Kong/kong 中文文档:htt ...

  3. kong笔记——kong/konga的搭建

    kong笔记 目录导航 本篇及以后的此系列文章皆为实战篇 版本介绍(重点,重点,一定要观察版本,防止不兼容情况!!): kong 2.5.0 konga 0.14.9 pgsql 9.6 linux ...

  4. kong笔记——kong的权限认证插件选择参考

    kong笔记--目录导航 kong自身共提供了这么几个权限认证插件: basic auth; key auth; hmac auth; jwt auth; oauth2 auth 接下来来逐个介绍其特 ...

  5. streamsets自定义插件部署方案

    streamsets data collector新增upsert 4 mysql 目录 1.背景简介 2.部署步骤 2.1 cm界面操作 2.2上传驱动包 2.3 上传插件 2.4选择pipelin ...

  6. android插件做动态权限,Mui本地打包笔记(四)Android自定义插件的配置(以动态申请权限为例)...

    通过自定义插件方式实现Android平台的动态申请权限功能 在上一章中完成了在Mui中调用Android原生的动态权限请求功能(Android动态申请权限的问题).虽然说完成了功能,但是在使用上并不是 ...

  7. kong笔记——认识kong

    kong笔记 目录导航 背景 最近公司打算重构API网关,给定的硬性条件是支持lua脚本,kubernetes可部署,可解析lua,另外需要支持身份认证,IP黑白名单,限流,负载均衡等一些功能,为此, ...

  8. kong笔记——Service、Route路由功能

    kong笔记 目录导航 在上两篇文章,我们主要介绍了kong的概念以及kong的部署,相信大家对kong已经有了基本认识,那么我们该如何使用它呢? kong的功能有许多,我们一个一个来,先从kong的 ...

  9. Wiz Editor md 为知笔记 Markdown 插件

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! Wiz. ...

最新文章

  1. 使用高精度旋转编码器BH60测量步进电机转动角度
  2. 如何用Graphpad Prism 9作时间轴图
  3. JDK8新特性之Lambda表达式
  4. linux vi 出现下划线,Vim高亮当前行(显示为下划线)的解决方案
  5. 大乐透python预测程序_Python生成随机验证码,大乐透号码
  6. mybatis工作总结001_mybatis中_parameter使用和常用sql
  7. 解决Android 音频Xrun问题
  8. 远程桌面连接-GPU加速
  9. VS 中PageLayout 属性设置
  10. [转载] Netty
  11. 开源项目halo个人博客源码学习初篇(一)
  12. Kali2019解决无法定位软件包
  13. Chrome插件开发练习 - 还未完成
  14. ACPYPE中FAILED: [Errno 2] No such file or directory: 'FFF_AC.prmtop'的解决方法
  15. 金融科技之能量守恒定律
  16. Idea查看所有断点
  17. 前端工程师能够用很低的学习本钱来运用它完成常用的效劳端代码
  18. 速卖通商标授权怎么弄?速卖通官方授权模板书分享
  19. [VisualStudio实战]VS2013 ERROR C2011 C2375 C2059 C3805 C3861问题解决
  20. 部队文职计算机专业技术岗面试,军队文职计算机类面试题-广东军队人才网

热门文章

  1. 计算机网络工程用排线架,什么是网络配线架 网络配线架优势有哪些
  2. 关于MP3文件中找不到TAG标签的问题
  3. QT ModbusCRC16 校验码计算(非查表法,直接计算)
  4. 淘宝 TOP 平台Open API入门篇
  5. Linux环境使用ACE编辑器,Ace Editor 在线代码编辑器搭建
  6. shawl.qiu Javascript 渐隐渐显类 Faded V1.0
  7. html下拉框第一个选项如何禁止选择
  8. 彻底理解sync的用法
  9. 【C语言|RUNOOB教程】100道经典例题详解(1~5题)
  10. 中国剩余定理模版【中国剩余定理】