Перейти к основному содержимому
Версия: 7.14

Скрипты

Воспользуйтесь данной статьей для создания и конфигурации скриптов автоматизации Monq.

Служебные методы и классы Lua​

Класс Scheduler​

Предоставляет набор методов для запуска скриптов по расписанию.

Экземпляр создается автоматически при вызове скрипта и доступен через переменную scheduler.

Метод curl​

Принимает таблицу (коллекцию «ключ-значение») аргументов.

Параметры curl​

ПараметрПримерЗначение по умолчаниюОписание
method"POST""GET"Допустимый (согласно 4.3 RFC 7231) HTTP 1.1-метод, используемый для вызова.
uri"http://smon.monq.ru"ОтсутствуетДопустимый (согласно RFC 2396) URI ресурса.
body"[{ "key": "value" }]"ОтсутствуетТело запроса. Произвольная строка.
mediaType"application/json""text/plain"MIME-типы – типы данных, которые могут быть переданы посредством сети Интернет с применением стандарта MIME.
headers{ ["accept-encoding"] = "gzip, deflate" }ОтсутствуетТаблица (коллекция «ключ-значение») ключей заголовков и их значений.
proxy{ address = "http://1.1.1.1:8080", bypassList = { "http://url1", "http://url2" }, credentials = { username = "guest", password = "guest" } }ОтсутствуетНастройки проксирования запроса.
address – допустимый (согласно RFC 2396) URI ресурса.
bypassList – массив адресов или регулярных выражений, описывающих адреса, при запросах к которым не будет использоваться прокси.
credentials – учётные данные для аутентификации на прокси-сервере.
username – имя пользователя.
password – пароль.
basicAuth{ login = "guest", password = "guest" }ОтсутствуетНастройки базовой авторизации для запроса.
login – имя пользователя.
password – пароль.

Модель ответа curl​

Если возникла ошибка, то data = nil, err ~= nil. Если ответ нормальный, то data ~= nil, err = nil.

{
data = {
statusCode = 200,
headers = {
["Server"] = "nginx/1.10.3",
["Date"] = "Wed, 16 Oct 2019 07:00:09 GMT"
},
content = "content string",
isSuccessStatusCode = true
},
err = {
message = "Ошибка"
}
}

Метод ssh​

Принимает таблицу (коллекцию «ключ-значение») аргументов.

Параметры ssh​

ПараметрТипПримерЗначение по умолчанию
hoststring"http://sample.ssh.com/"Отсутствует
portnumber2322
usernamestring"demo-user"Отсутствует
passwordstring"demo-password"Отсутствует
privateKeystring"0KHQtdC60YDQtdGC0L3QvtC1INC/0L7RgdC70LDQvdC40LUgO15Q"Отсутствует
commandstringecho "I have a bad feeling about this."Отсутствует

Метод snmp​

Отправляет сообщения на сервер электронной почты.

Параметры snmp​

ПараметрПримерЗначение по умолчанию
ip"64.233.163.94"Отсутствует
community"public""public"
version"2c""1"
level"authnopriv""noauthnopriv"
method"walk""get"
timeout100001000
maxrepetitions110
mode"subtree""all"
data"s Shanghai"Отсутствует
oid"1.3.6.1.2.1.1.6.0"Отсутствует
user"privacy"""
contextname""""
authentication"md5"""
authphrase"authentication"""
privphrase"privacyphrase"""

Метод smtp​

Параметры smtp​

ПараметрПримерОписание
hostАдрес сервера-отправителя (IP-адрес, либо DNS-имя)
port25Номер порта на сервере
secureMode"None" / "Auto" / "SslOnConnect" / "StartTls" / "StartTlsWhenAvailable"Принудительно задает режим шифрования.
usernameЛогин пользователя-отправителя (опционально, при наличии проводится аутентификация на сервере).
passwordПароль пользователя-отправителя (опционально)
subjectТема письма
bodyТекст письма
mailTypeТип отображения сообщения (plain, html)
from{ title = "Отдел оповещения", address = "sender@server.net" }Адрес отправителя (должен соответствовать формату адреса электронной почты, при несоответствии скрипт будет завершен с ошибкой)
recipients{ "overwatchers@gmail.com", "overwatchers@ya.ru", "tester@gmail.com" }Список адресов получателей (адреса, которые не соответствуют формату адреса электронной почты, будут исключены из рассылки)

Модель ответа smtp​

При успешном завершении data = true При возникновении ошибки data = false, err – объект-исключение с сообщением об ошибке error.Message

Метод regexIsMatch(string input, string pattern)​

Проверяет, обнаружено ли в указанной входной строке соответствие заданному регулярному выражению.

Параметры regexIsMatch​

  • input – входная строка
  • pattern – регулярное выражение (PCRE-диалект)

Модель ответа regexIsMatch​

  • true – если соответствует
  • false – если не соответствует

Метод regexMatch(string input, string pattern)​

Ищет в указанной входной строке первое вхождение заданного регулярного выражения.

Параметры regexMatch​

  • input – входная строка
  • pattern – регулярное выражение (PCRE-диалект)

Модель ответа regexMatch​

Метод regexReplace(string input, string pattern, string replacement)​

Заменяет во входной строке все подстроки, соответствующие указанному регулярному выражению, на указанное значение.

Параметры regexReplace​

  • input – входная строка
  • pattern – регулярное выражение (PCRE-диалект)
  • replacement – строка замены

Модель ответа regexReplace​

  • string – строка с замененной подстрокой

Метод regexSplit(string input, string pattern)​

Разделяет входную строку в массив подстрок в позициях, определенных шаблоном регулярного выражения.

Параметры regexSplit​

  • input – входная строка
  • pattern – регулярное выражение (PCRE-диалект)

Модель ответа regexSplit​

  • string[] – массив подстрок

Метод scheduleAfter​

Запланировать вызов скрипта через <seconds> секунд, начиная с момента вызова метода.

Параметры scheduleAfter​

  • seconds – количество секунд, через которое будет запущен скрипт, начиная с момента вызова метода

Модель ответа scheduleAfter​

  • LuaResult<boolean> – результат выполнения метода
  • True – скрипт запланирован
  • False – возникли проблемы с постановкой скрипта в планировщик
  • result.err – детали ошибки

Создание скрипта​

Для создания нового скрипта, перейдите в раздел Мои скрипты в основном меню.

В правом верхнем углу страницы нажмите «Добавить скрипт». Введите название, выберите группу-владельца, опционально вставьте описание и подтвердите создание.

После создания вы будете автоматически перенаправлены на страницу конфигурации скрипта. Во вкладке «Основная информация» вы можете сразу же изменить данные, указанные при создании.

Конфигурация скрипта​

Для написания кода скрипта перейдите на вкладку «Редактор».

По умолчанию, исполняемая версия кода скрипта заблокирована. Для внесения изменений в код, создайте черновик – для этого нажмите «Новая версия» в нижней области редактора или выберите новую версию в списке выше. После получения доступа на редактирование, используйте редактор для написания кода скрипта.

Для реализации кода вы можете использовать все доступные служебные классы и функции языка Lua – подробнее здесь.

Готовый скрипт можно сразу проверить на наличие синтаксических ошибок и работоспособность. Для проверки синтаксиса нажмите «Проверка кода» слева от редактора – результат проверки отобразится в нижней области редактора «Проверка кода». Для проверки работоспособности нажмите «Запустить сейчас» в верхнем правом углу страницы – это откроет диалог ручного запуска скрипта. Введите значения переменных, если это требуется и подтвердите запуск. После выполнения скрипта вы автоматически перенаправитесь в Историю запусков скрипта, где сможете просмотреть результат его выполнения.

Для сохранения версии скрипта нажмите «Сделать исполняемой» – реализованной версии присвоется порядковый номер и версия станет активной. Версия также станет доступна для выбора в списке выше.

Вы можете просмотреть всю историю изменения версий кода скрипта – нажмите «История изменений» под кнопкой проверки кода.

Переменные запуска​

Кроме обычных переменных в коде скрипта, вы можете использовать переменные запуска. В отличие от обычных, значения таких переменных могут быть заданы извне, при запуске скрипта вручную или в качестве операции Действия.

Для создания переменных, перейдите на вкладку «Переменные запуска». Добавьте переменную с помощью кнопки справа. Заполните поля переменной: укажите имя, выберите тип (String / Boolean / Number / Datetime), введите значение по умолчанию, соответственно типу.

Дополнительно вы можете защитить переменную – скрыть её значение по умолчанию от просмотра. Для этого нажмите «Сделать защищенной».

Функция защиты переменной полезна в случаях, когда вам необходимо использовать конфиденциальные данные (например, ключ API) для выполнения скрипта, но вы не хотите, чтобы доступ к ключу получил кто-то еще.

История запусков​

Во вкладке «История запусков» вы можете просмотреть полную историю выполнения скрипта вручную или автоматически в качестве операции Действия.

Для просмотра подробной информации о конкретном запуске, воспользуйтесь «Фильтром» для поиска. В найденной записи, в таблице, нажмите «Открыть лог» – откроется консоль вывода выполнения скрипта.

Кроме этого, из записи в таблице истории вы можете перейти к конкретной версии скрипта, просмотреть условия запуска, длительность и использованные значения переменных.

Связанные действия​

Если вы используете один скрипт в нескольких Действиях автоматизации в качестве операции, на вкладке «Связанные действия» скрипта будет выведен список всех Действий, в которых он используется.

Нажмите на запись, чтобы перейти к объекту, или разверните её, чтобы дополнительно просмотреть список Правил, к которым прикреплены Действия.

Удаление​

Для полного удаления скрипта нажмите «Удалить» в правом вернем углу страницы и подтвердите действие в диалоговом окне.