lua – 已启用Kong v1.0.2的自定义插件但未安装

前端之家收集整理的这篇文章主要介绍了lua – 已启用Kong v1.0.2的自定义插件但未安装前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个适用于Kong的自定义插件,对于Kong v0.14.1工作得很好但是在我升级到v.1.0.2之后它会抛出一个错误.

使用的操作系统:macOS Mojave

在kong.conf文件中我有这个代码

log_level = debug
plugins=my-custom-plugin

我试着用这个命令启动Kong:

kong start -c kong.conf

我收到此错误

Error: /usr/local/share/lua/5.1/kong/cmd/start.lua:50: Nginx: [error] init_by_lua
error: /usr/local/share/lua/5.1/kong/init.lua:344: my-custom-plugin plugin is enabled but not installed;
module ‘kong.plugins.my-custom-plugin.handler’ not found:No LuaRocks module found for kong.plugins.my-custom-plugin.handler
no field package.preload[‘kong.plugins.my-custom-plugin.handler’]
no file ‘./kong/plugins/kong-my-custom-plugin/handler.lua’…

我使用这个命令安装了插件

luarocks make

它给出了以下输出

my-custom-plugin 1.0-1 is now installed in /usr/local/opt/kong (license: MIT)

不知何故,似乎Kong无法找到我安装的自定义插件.知道为什么会这样吗?

解决方法

@ user5377037的答案有大部分相关细节,我只想提一下,就像Kong 0.14.x一样,“custom_plugins”现在只是“插件”.

这种变化的原因之一是你现在可以使用这个新的变量名来选择加载或不加载与Kong捆绑在一起的插件 – 这对某些人来说是一个有用的功能.但是,如果要加载自定义插件和捆绑插件,则现在必须指定bundled关键字以指示您要保持捆绑插件的加载.

前0.14.x

实际效果是在< 0.14.x:

custom_plugins = plugin1,plugin2

要么

KONG_CUSTOM_PLUGINS=<plugin-name>

发布0.14.x

在Kong> = 0.14.x中,您现在写道:

plugins = bundled,plugin1,plugin2

要么

KONG_PLUGINS=bundled,<plugin-name>

如果您不使用捆绑

如果您不添加捆绑的关键字,您可能会遇到类似这样的错误

Nginx: [error] init_by_lua error: /usr/local/share/lua/5.1/kong/init.lua:292: key-auth plugin is in use but not enabled
stack traceback:
    [C]: in function 'assert'
    /usr/local/share/lua/5.1/kong/init.lua:292: in function 'init'
    init_by_lua:3: in main chunk

这意味着您已将代理设置为使用某个插件,但现在您没有在启动时加载该插件,因此Kong不知道该做什么并退出.从本质上讲,您只会加载一个可能不是您想要的自定义插件.

lua_package_path

关于lua_package_path和KONG_LUA_PACKAGE_PATH的注释与user5377037的帖子中的注释相同.

参考

> Upgrade Documentation
> Configuration Reference

猜你在找的Lua相关文章