【问题标题】:Kong refuses to recognise custom plugin as enabledKong 拒绝将自定义插件识别为已启用
【发布时间】:2015-10-30 11:42:00
【问题描述】:

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

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

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

由于我在 2.8.0-1 中遇到的编译问题,我在此过程中所做的一些更改是将“lrexlib-pcre”的 rockspec 文件中的依赖关系从版本 2.8.0-1 更改为 2.7.2-1版本。 请注意,我在下一个分支工作。 master 分支列出了 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插件列为节点中可用的插件。所有其他内置插件在服务器中显示为可用

我尝试使用 mock 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 版中引入了一些重大更改。我关注了更新日志,但没有发现任何有用的信息。

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

任何帮助将不胜感激。

【问题讨论】:

  • 官方插件开发指南现已发布:getkong.org/docs/0.5.x/plugin-development 值得对照您正在做的事情进行检查,以防遗漏某些内容
  • 嗨,你已经解决了这个问题吗?我一直在玩 Kong 和 custom 插件,它们有点棘手。我有几次你的问题,但那是因为我修改了错误的 kong.yml。通常,当您从 rpm 安装 Kong 时,conf 文件位于 /etc/kong/kong.yml 中,但如果您在运行“make start”时在本地开发,它将使用 kong_DEVELOPMENT.yml。如果你运行“bin/kong start”,它会在你的工作目录中使用 kong.yml。确保您正在编辑正确的(或只是编辑所有)
  • 我刚刚遇到了完全相同的问题,请确保您更改 /etc/kong/kong.yml

标签: nginx plugins lua mashape kong


【解决方案1】:

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

custom_plugins:
  - helloworld

【讨论】:

    【解决方案2】:

    我通过在 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 中。

    @Enjoy

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-15
      • 2018-10-27
      • 2021-09-12
      • 2013-04-27
      • 1970-01-01
      • 2019-09-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多