kong环境中的错误"plugin is in use but not enabled"

我们尝试使用这个页面描述的hello-world插件-https://streamdata.io/blog/developing-an-helloworld-kong-plugin/

也尝试使用这个- https://github.com/brndmg/kong-plugin-hello-world

我们在日志中遇到了这个错误: 2017/09/19 09:47:15 [error] 1#0: init_by_lua error: /usr/local/share/lua/5.1/kong.lua:154: 该hello-world插件正在使用但未启用 stack traceback: [C]: in function 'assert' /usr/local/share/lua/5.1/kong.lua:154: in function 'init' init_by_lua:3: in main chunk

我们正在使用的Kong版本是0.11.0。

有人能建议我们可能缺少什么吗?

点赞
用户1437192
用户1437192

Kong 报错原因分析

Kong 报错是由于你要求其运行一个名为 hello-world 的插件,但没有提供该插件的代码。

这个错误是在尝试说明该插件已经配置为在数据存储中(PostgreSQL 或 Cassandra)运行在 API/Consumer 上,但没有添加到 Kong 配置的 custom_plugins 设置中。

要加载自定义插件,你需要两个东西:

  1. 插件必须安装在 LUA_PATH 中(参考这里的文档)
  2. 插件名称必须添加到 custom_plugins 设置中,Kong 才能从 LUA_PATH 中加载它

你可以编辑配置文件来使 Kong 加载该插件:

custom_plugins = hello-world

或通过环境变量指定它:

export KONG_CUSTOM_PLUGINS=hello-world

如果你仍然看到这个错误,这可能意味着你没有使用正在编辑的配置文件启动 Kong。以详细模式启动 Kong,查看它正在读取的配置文件和 custom_plugins 的值:

$ kong start --vv

你可以在网站的 Plugins Development Guide 部分阅读有关如何安装和自定义 0.11 版本插件的更多信息。

2017-09-19 23:08:16
用户4596399
用户4596399

我通过在 custom_pluginslua_package_path 中添加内容来解决了这个问题。

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

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

2 - 通过以下步骤安装 hello-world 插件 ---

如果你有插件的源代码,那么移动到它并执行命令 --- "luarocks make"

它将安装您的插件。

现在您必须执行一个命令 "make install-dev" 确保您的插件有一个像这样的 makefile -

enter image description here

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

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

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

类似于这样 -

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

现在你完成了你的工作。

只需启动 kong -- kong start --vv

您将看到插件已加载到 kong 插件环境中。

@Enjoy

2017-09-25 13:28:57