1

我们正在尝试使用此页面中描述的 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 plugin is正在使用但未启用堆栈回溯:[C]:在函数'assert'/usr/local/share/lua/5.1/kong.lua:154:在函数'init'中init_by_lua:3:在主块中

我们使用的 Kong 版本是 0.11.0。

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

4

2 回答 2

2

Kong 引发此错误是因为您要求它运行名为 的插件hello-world,但未提供此插件的代码。

此错误试图说明此插件配置为在数据存储(PostgreSQL 或 Cassandra)中的 API/消费者上运行,但未添加到 Kong 配置custom_plugins设置中。

要加载自定义插件,您需要两件事:

  1. 该插件必须安装在LUA_PATH(请参阅此处的文档)
  2. 插件名称必须添加到custom_pluginsKong 的设置中才能加载它(来自LUA_PATH

您可以编辑配置文件以使 Kong 加载插件:

custom_plugins = hello-world

或通过环境变量指定它:

export KONG_CUSTOM_PLUGINS=hello-world

如果您仍然看到此错误,这可能意味着您没有使用正在编辑的配置文件启动 Kong。以详细模式启动 Kong 以查看它正在读取的配置文件以及以下值是什么custom_plugins

$ kong start --vv

您可以在网站的插件开发指南部分阅读有关如何为 0.11 安装和自定义插件的更多信息。

于 2017-09-19T23:08:16.770 回答
0

我通过在custom_pluginslua_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:28:57.907 回答