Kong отказывается распознавать пользовательский плагин как включенный
Я разрабатывал пользовательский плагин для Kong.
Для начала я следовал рекомендациям, перечисленным в этом уроке
http://streamdata.io/blog/developing-an-helloworld-kong-plugin/
Несколько изменений, которые я сделал по пути, меняли зависимость в файле rockpec для "lrexlib-pcre" с версии 2.8.0-1 до 2.7.2-1 из-за проблем компиляции, с которыми я столкнулся в версии 2.8.0-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
В конце я перечислил файлы helloworld в файле rockpec.
["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. Это не работает, как ожидалось, и пытается перезапустить конг списки ошибка
nginx: [ошибка] [lua] init_by_lua:5: ошибка запуска: /usr/local/share/lua/5.1/kong.lua:82: вы используете плагин, который не был включен в конфигурации: helloworld [INFO] dnsmasq остановлен [ERR] Не удалось запустить Kong
Я знаю, что в версии 0.5 Kong были внесены серьезные изменения. Я следил за журналом изменений, но не нашел ничего, что могло бы помочь.
Я где-то пропустил настройку конфигурации?
Любая помощь будет оценена.
2 ответа
Попробуйте следующее в вашем kong.yml
:
custom_plugins:
- helloworld
Я исправил эту проблему, добавив вещи в custom_plugins и lua_package_path.
Вот шаги, чтобы включить и использовать пользовательский плагин в Конг 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
просто скопируйте этот путь и добавьте его в файл конфигурации kong в lua_package_path
Что-то вроде того --
lua_package_path = / ваш-плагин-путь / lua_modules / доля / Lua / 5,1 / конг / плагины / плагин-имя-файла /?. Lua
Теперь вы сделали свою работу.
Просто начните Конг - Конг Старт --vv
Вы увидите, что плагин загружен в env.
@Наслаждаться