Расширения
Вы можете загрузить подключаемые функции, или расширения, в
TDG вместе с конфигурацией приложения. Для этого поместите
расширения в корень проекта в директорию extensions.
При применении конфигурации в TDG:
- подключается модуль global.lua (при его наличии), который содержит глобальные изменения поведения приложения;
- становятся доступны подключенные расширения
в окружении
sandbox.
Модуль global.lua используется, чтобы задать в TDG глобальные
изменения поведения, например, для настройки пользовательского
HTTP-маршрута или функции IPROTO. Код из файла модуля запускается при
обновлении конфигурации на всех экземплярах и выполняется вне окружения
sandbox.
Чтобы добавить это расширение, выполните следующие действия:
- В корневой директории TDG создайте директорию
extensions. - Создайте файл модуля
global.lua, напишите в нем необходимый код, а затем разместите файл в директорииextensions. Модуль должен возвращать функциюinit(), которая вызывается при применении конфигурации. - Упакуйте в zip-архив:
- папку
extensions, внутри которой лежит файл модуля; - файл конфигурации
config.yml.
- папку
- Загрузите архив в TDG согласно инструкции.
Чтобы подключить новые функции (расширения) к Sandbox API, выполните следующие действия:
-
В корневой директории TDG создайте директорию
extensions/sandbox. На следующем шаге в нее будет добавлен модуль с подключаемыми функциями. Также нужно проследить, чтобы у пользователей были необходимые права для чтения данной директории. -
Разместите в директории
sandboxфайл Lua-модуля, который вы хотите подключить. Модуль при этом должен возвращать объект с определяемыми модулем функциями. Кроме того, в добавленном модуле все используемые встроенные библиотеки должны быть явно подключены с использованиемrequire(). Пример файла с Lua-модулем:– ./extensions/sandbox/csv.lua– По умолчанию в TDG не доступен модуль ``csv``return require('csv') -
Упакуйте в zip-архив:
- папку
extensions/sandbox, внутри которой лежит файл модуля; - файл конфигурации
config.yml.
- папку
-
Загрузите архив в TDG согласно инструкции.