Kong: Как использовать переменную среды ОС в плагине кода Lua? - PullRequest
0 голосов
/ 08 апреля 2019

Я читал различные статьи на github, что для доступа кода Kong к переменным окружения ОС я должен использовать директиву env. Я очень новичок в конге, и я не понимаю, как это работает внутри. Но я попытался сделать это: добавьте env MY_ENV_VARIABLE; в nginx.conf, но все равно os.getenv("MY_ENV_VARIABLE") - это ноль.

Я пытаюсь внести изменения в файлы Lua kong/kong/core/. Я использую Kong в качестве docker-контейнера с docker-entrypoint.sh с:

kong prepare --v -p "/usr/local/kong" -c "/usr/local/kong/kong.conf" и команда в Dockerfile как CMD ["/usr/local/openresty/nginx/sbin/nginx", "-c", "/usr/local/kong/nginx.conf", "-p", "/usr/local/kong/"]

Этот образ докера запускается в Kubernetes, а переменная среды передается в развертывании. Внутри контейнера, если я делаю echo $MY_ENV_VARIABLE, я вижу значение, которое я передаю. Даже если я напишу пример кода lua (скажем, test.lua), который печатает os.getenv («MY_ENV_VARIABLE») и запускаю его, используя resty test.lua, он печатает значение.

Внутри docker-контейнера (после docker exec -it .. sh) я нахожу два nginx.conf. Один из них генерируется автоматически, а другой - в моем коде, который создал изображение.

./usr/local/kong/nginx.conf ./usr/local/openresty/nginx/conf/nginx.conf

Первый файл, который я считаю, генерируется автоматически. Второй файл содержит env MY_ENV_VARIABLE;. Все еще в коде lua, когда он достигает во время запроса datapath, os.getenv, который я добавил, возвращает ноль.

Я прилагаю второй файл конфигурации здесь для справки:

worker_processes  1;

env KONG_DECRYPT_KEY;

events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;

    keepalive_timeout  65;
    enter code here
    include /etc/nginx/conf.d/*.conf;
}

Итак, теперь мой вопрос: что мне здесь не хватает? Что я должен сделать, чтобы новый дополнительный код Lua, который я пишу в kong / core, мог получить доступ к переменным окружения ОС?

...