Перейти к основному содержимому
Версия: 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) для выполнения скрипта, но вы не хотите, чтобы доступ к ключу получил кто-то еще.

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

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

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

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

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

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

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

Удаление

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