Установка и настройка модуля#
Модуль рассылки уведомлений (далее – Модуль) предназначен для уведомления пользователя в Системе о полученных заявлениях на предоставление услуг, о получении ответа на межведомственные запросы, о необходимости изучения или согласования документа.
Является отдельным приложением, основная задача которого - мониторинг изменений в Системе через таблицы аудита (таблицы с префиксом «l_»).
См.также
Возможности модуля Рассылки уведомлений, его настройки, а также работа с уведомлениями описаны в разделе Возможности модуля.
Задать конфигурацию#
Сервис#
Конфигурация задается в файле appsettings.json.
Также существует файл appsettings.Development.json, который будет переписывать значения основного файла конфигурации, если не выставлен runtime для release.
{
"AllowedHosts": "*",
// Адрес endpoint'а сервисе, по которому будет доступен health-check
"urls": "http://localhost:5089",
"ConnectionStrings": {
// Строка подключения к БД
"DefaultConnection":
"Server=172.16.55.113;Port=5432;Database=kazan;User Id=postgres;Password=qwerty123;ApplicationName=IasPgV3;",
// Строка подключения к БД для создания и вычитывания таблицы notify_created, которая содержит данные о созданных уведомлениях. У пользователя должны быть права на создание и вычитывание таблицы в схемах.
"NotifyCreated":
"Server=172.16.55.113;Port=5432;Database=kazan;User Id=postgres;Password=qwerty123;ApplicationName=IasPgV3;",
},
"ObjectCardUrlService": {
// Адрес основного веб-приложения, доступный с пользовательских машин. Участвует в формировании ссылки на карточку объекта
"WebAppUrl": "http://localhost:5000"
},
"MailSending": {
// Тип отправителя. Доступные значения:
// NotificationService.Tools.MailSenders.SmtpMailSender - отправка по smtp
// NotificationService.Tools.MailSenders.ExchangeMailSender - отправка средствами exchange
"SenderTypeName": "NotificationService.Tools.MailSenders.SmtpMailSender",
// Настройки пользователя, от имени которого ведется отправка писем
"Sender": {
// Логин учетной записи отправителя на почтовом сервере (если учетная запись не привязана к ActiveDirectory, то может совпадать с From)
"Login": null,
// Домен учетной записи отправителя (заполняется в случае доменной учетной записи)
"Domain": null,
// Пароль учетной записи отправителя на почтовом сервере
"Password": null,
// Email отправителя
"From": "TestSender@test.ru",
// Host почтового сервера
"Host": "smtp.test.ru",
// Порт почтового сервера
"Port": null,
// Флаг использования учетной записи по умолчанию при подключении к почтовому серверу.
// Выставляется в false, если для подключения используется конкретная учетная запись,
// данные которой задаются в Login, Domain, Password
"DefaultCredentials": true,
// Флаг использования ssl-соединения при подключении к почтовому серверу
"Ssl": false
}
},
"Logging": {
"IncludeScopes": true,
"LogLevel": {
"Default": "Debug",
"System": "Warning",
"Microsoft": "Warning"
}
},
"AppSettings": {
"maxConcurrency": "2",
"maxRev": "2000000"
}
}
//"maxConcurrency" - ограничивает число потоков для SemaphoreSlim. Необходим для ситуации, когда возникает проблема с большим количеством параллельно работающих запросов к БД. Рекомендуемое значение 2.
//"maxRev" - разделяет большой интервал ревизий на несколько интервалов меньшей длины. Необходим для ситуации, когда сервис находится в состоянии простоя (выключен) и накапливается большой интервал необработанных ревизий. Рекомендуемое значение 2000000.
Пример заполнения настроек smtp для Яндекс почты (поле Domain в некоторых случаях заполнять не нужно. Обычно Domain используется, когда логин происходит от имени доменных учетных записей):
"Sender": {
"Login": "mgis@kzn.ru",
"Domain": "",
"Password": "pass",
"From": "mgis@kzn.ru",
"Host": "smtp.yandex.ru",
"Port": "587",
"DefaultCredentials": false,
"Ssl": true
}
Логгер#
Конфигурация задается в файле notification.nlog.config. По умолчанию переменная «moduleName», участвующая в формировании пути к файлу с логом, заполнена значением «notification».
Сборка#
Сборка сервиса встроена в общий скрипт сборки системы buildForUnixModulesAndProducts.bat.
Результатом сборки является архив NotificationService.zip и файл публикации NotificationServiceDeploy.
Публикация#
Публикация выполняется через bash-скрипт NotificationServiceDeploy, который при сборке, по аналогии с остальными сервисами системы такого же типа, помещается в директорию с результатами сборки.
Для выполнения скрипта необходимы:
файл развертывания NotificationServiceDeploy;
рядом с ним должен находиться архив с результатами сборки сервиса NotificationService.zip;
файл конфигурации NotificationServiceConfig.json.
Пример скрипта:
sudo bash /<путь до результатов сборки NotificationService >/NotificationServiceDeploy -installDir=/opt/NotificationService -configFile=/home/user/NotificationServiceConfig.json
где:
installDir– это директория, в которую будет установлен сервис. Предполагается, что директория с артефактом сборки (путь до результатов сборки NotificationService) отличается от директории, куда будет установлен сервис (значение параметра installDir).configFile– это файл конфигурации сервиса для текущего внедрения. Файл конфигурации сервиса для каждого внедрения формируется и складывается на целевой сервер отдельно, в примере – NotificationServiceConfig.json. Этот файл формируется из appsettings.json, заполняя параметры для внедрения. При публикации в скрипт передается адрес, по которому лежит рабочий файл конфигурации для текущего внедрения. В процессе публикации все файлы конфигурации удаляются из сборки и на их место копируется указанный файл конфигурации. При копировании наименование файла конфигурации меняется на appsettings.json.
Установить модуль в систему#
Для настройки и работы модуля рассылки уведомлений необходимо обновить основное приложение с установкой дополнительного модуля системы. Для этого в терминале выполнить команду установки приложения.
Пример команды установки:
sudo bash /<путь до результатов сборки>/IASUnixDeploy -installDir=/opt/ IAS -connectionString='Server=localhost;Port=5432;Database=db;User Id=user;Password=pass;Connection Idle Lifetime=5;Connection Pruning Interval=3;Maximum Pool Size=500;' -extraModule=Gems.Module.Notification
где:
installDir – директория, в которую установлено основное приложение,
connectionString – строка подключения к базе данных. Заключена в кавычки и состоит из набора обязательных параметров:
Server – доменное имя или IP-адрес сервера баз данных
Port – порт сервера баз данных
Database – имя базы данных
User Id – имя пользователя базы данных
Password – пароль пользователя базы данных
Connection Idle Lifetime – время жизни в секундах подключения к БД без активности
Connection Pruning Interval – интервал в секундах через который удаляются сессии с превышенным временем жизни
Maximum Pool Size – количество сессий в пуле соединений
extraModule – параметр установки дополнительных модулей системы.
Альтернативным вариантом установки дополнительного модуля системы является копирование папки модуля Gems.Module.Notification в папку директории /opt/IAS/AppServer/Modules.
После этого под учетной записью суперпользователя (sudo su) необходимо перезапустить приложение для применения изменений.
Команда для перезапуска приложения:
systemctl restart Gems.Ias.ApplicationServer.service
Установить компоненты БД#
Также для работы модуля уведомлений необходимо установить компонент базы данных (КБД) «Modules.Notification». Для установки КБД используется утилита Gems.cli. (Подробнее: cli-database)
Пример строки установки компонента:
dotnet gems.cli.dll db-migrate-standalone –c 'строка подключения к БД' –o 'Modules.Notification'