Правила¶
Каждый файл функции проверяется при запуске бота и при запуске
validate. Если один файл неправильный, ничего не запускается, поэтому
ошибки выявляются еще до того, как ваше меню будет опубликовано.
Какие файлы читаются¶
- Читаются только файлы, заканчивающиеся на
.yamlили.yml. Все остальное игнорируется. - Подпапки вашего
function_directoryтоже читаются. - Один файл должен описывать ровно одну функцию.
Именование¶
nameявляется обязательным и должен соответствовать^[A-Za-z0-9._-]+$— буквы, цифры,.,-и_. Никаких пробелов.- Имена уникальны, регистр игнорируется.
Deployиdeployконфликтуют, даже если они находятся в разных файлах. - Зарезервированные имена запрещены. Вы не можете назвать функцию
commandилиscript; они принадлежат к встроенным функциям.
Команда¶
- Необходим
run. Напишите команду с помощью заполнителей, куда идут значения. - Синтаксис заполнителя проверяется при проверке конфигурации, поэтому ошибка
вроде незакрытого
{{обнаруживается заранее.
Параметры¶
- Для каждого параметра требуется
name, соответствующий тому же правилу символов, что и имя функции. typeдолжен бытьstring,intилиbool. Если его оставить, это означаетstring. Проверяются значения и настройки по умолчанию, объявленные какintилиbool.- Имя параметра не может быть настройкой кнопки:
name,type,icon,id,function,confirm,timeout,workdir,env,columnsилиitems. Допускаются именаcommand,pathиargs. - Каждое значение, записанное на кнопке, должно соответствовать объявленному ею параметру. Функция кнопки.
Поле функции run может использовать только заполнители для объявленных
параметров. Необъявленный заполнитель является ошибкой.
Опечатки — это ошибки¶
Неизвестные ключи отклонены. Опечатка типа requird: вместо required:.
останавливает проверку, а не молча игнорируется.
Этот файл не загружается
Обязательные значения и значения по умолчанию¶
- обязательный параметр без значения приводит к сбою проверки с сообщением.
например
required parameter "args" for function "greet" is missing. - Значение, которое присутствует, но пусто, считается отсутствующим.
- Необязательный параметр возвращается к своему
default. Безdefaultэто становится пустым, поэтому необязательные части команды исключаются.
Обязательно и необязательно в одном файле
functions/tail-log.yaml
name: tail-log
run: "tail -n {{.args}} {{.path}}"
params:
- name: path
required: true
description: Log file path
- name: args
default: "200"
description: Number of lines
Кнопка, которая устанавливает только path, запускает tail -n 200
/var/log/app.log.
Похожие¶
- Структура файла — объяснение каждого поля
- Заполнители — написание команды
run - CLI → validate — запустите проверки самостоятельно