3

我正在为 Kong 开发一个自定义插件。

首先,我遵循本教程中列出的指南

http://streamdata.io/blog/developing-an-helloworld-kong-plugin/

由于我在 2.8.0-1 版本中遇到的编译问题,我在此过程中所做的一些更改是将 Rockspec 文件中“lrexlib-pcre”的依赖关系从版本 2.8.0-1 更改为 2.7.2-1。请注意,我在下一个分支工作。主分支列出了 2.7.2-1 版本。

本教程假定 Kong 版本为 0.4.2-1,而我使用的是 Kong 版本 0.5.2-1。

我已经在 kong.yml 中列出了我的插件。最后列出的是 helloworld 插件

    plugins_available:
  - ssl
  - jwt
  - acl
  - cors
  - oauth2
  - tcp-log
  - udp-log
  - file-log
  - http-log
  - key-auth
  - hmac-auth
  - basic-auth
  - ip-restriction
  - mashape-analytics
  - request-transformer
  - response-transformer
  - request-size-limiting
  - rate-limiting
  - response-ratelimiting
  - helloworld

我最后在 rockspec 文件中列出了 helloworld 文件。

["kong.plugins.helloworld.handler"] = "kong/plugins/helloworld/handler.lua", ["kong.plugins.helloworld.access"] = "kong/plugins/helloworld/access.lua", [" kong.plugins.helloworld.schema"] = "kong/plugins/helloworld/schema.lua"

编译成功,但 kong 拒绝列出节点中可用的 helloworld 插件。所有其他内置插件在服务器中显示为可用

无论如何,我尝试使用模拟 api 启用插件。它无法按预期工作并尝试重新启动 kong 列表错误

nginx:[错误] [lua] init_by_lua:5:启动错误:/usr/local/share/lua/5.1/kong.lua:82:您正在使用配置中未启用的插件:helloworld [INFO] dnsmasq 停止 [ERR] 无法启动 Kong

我知道在 Kong 0.5 版中引入了一些重大变化。我关注了更改日志,但没有发现任何帮助。

我是否缺少在某处设置配置?

任何帮助,将不胜感激。

4

2 回答 2

0

我通过在custom_plugins 和 lua_package_path中添加东西来解决这个问题。

以下是在 kong Env 中启用和使用自定义插件的步骤。

1 - 在 --- custom_plugins = hello-world中添加自定义插件名称

2 - 使用以下步骤安装 hello-world 插件 ---

如果你有你的插件的源代码然后进入它并执行命令--- “luarocks make”

它将安装您的插件。

现在你必须执行一个命令“make install-dev”确保你的插件有makefile,比如——

在此处输入图像描述

一旦你执行了这个命令"make install-dev"。它将在类似的位置创建 lua 文件 -

/ your-plugin-path /lua_modules/share/lua/5.1/kong/plugins/ your-plugin-name /?.lua

只需复制此路径并将其添加到 lua_package_path 的 kong 配置文件中

类似的东西——

lua_package_path=/your-plugin-path/lua_modules/share/lua/5.1/kong/plugins/your-plugin-name/?.lua

现在你完成了你的工作。

刚开始 kong -- kong start --vv

您将看到插件已加载到 kong plugin env 中。

@享受

于 2017-09-25T13:41:26.633 回答
0

在您的 中尝试以下操作kong.yml

custom_plugins:
  - helloworld
于 2016-06-11T12:10:31.007 回答