Сервис для отправки сообщений в федеральную СМЭВ3

smev3 link

Pipiline status

Предназначение

Отправка и получение сообщений в СМЭВ3

Переменные окружения

Переменные для конфигурирования подключения к RabbitMQ: MQ_HOST, MQ_PORT, CA_CERT, CLIENT_CERT, CLIENT_KEY

Переменные для конфигурирования подключения к БД: DATABASE_HOST, DATABASE_PORT, DATABASE_NAME, DATABASE_USER, DATABASE_PASS.

Название Описание    
SMEV_KEY Ключ СМЭВ3    
SMEV_CERT Сертификат СМЭВ3    
NODE_ID Параметр node_id для сообщения СМЭВ3    
SMEV_GET_FILTER Фильтры для GetResponse. Формат: "ns1|name1;ns2|name2"    
SMEV_SIGN_ALGORITHM Алгоритм подписи (gost2001,gost12_256,gost12_512)    
SMEV_DGST_ALGORITHM Алгоритм хеширования (gost2001,gost12_256,gost12_512)    
SMEV_SKIP_SIGN_CHECK Пропуск проверки подписи СМЭВ3 (true,false)    
ELASTIC_HOST ip для подключения к ElasticSearch    
ELASTIC_PORT port для подключения к ElasticSearch    
SMEV_ACK_UNKNOWN подтверждать ли сообщения с неизвестным smev_message_id(true,false)    
SMEV_SAVE_UNKNOWN_LOGS логировать ли сообщения с неизвестным smev_message_id(true,false)    
SERVICE_USE_PRODUCTION Отвечает за наличие признака TestMsg в сообщениях СМЭВ. НЕ СВЯЗАН С ПЕРЕКЛЮЧЕНИЕМ ТЕСТОВОГО/ПРОДУКТОВОГО КОНТУРА СМЭВ    
SMEV_ENDPOINT Переключает адрес подключения к СМЭВ3. Именно этот параметр переключает тестовый/продуктовый контур СМЭВ3. Допустимые значения:
<ul><li>http://smev3-n0.test.gosuslugi.ru:7500/ws?wsdl</li><li>http://172.20.3.12:7500/ws?wsdl - может иметь другое значение</li></ul>
   
CRYPTO_PROVIDER Способ подписания (cryptopro signer openssl)
CRYPTOPRO_KPS Имя сертификата для поиска для режима КриптоПРО    
CRYPTOPRO_PIN Пин доступа к токену для режима КриптоПРО    
SIGNER_URL Адрес сервиса подписания для режима signer    
SIGNER_SRV_CERT Сертификат сервиса подписания    
SIGNER_CLIENT_CERT Сертификат для подключения к сервису подписания    
SIGNER_CLIENT_KEY Ключ для подключения к сервису подписания    

Пример json запроса

Для проверки настройки сервиса можно отправить в консоли MQ следующий запрос:

Заголовки: json { "type": "Smev3Request", "ticket": "TICKET_UNIQ_ID", "reply_to": "test", "consumer": "test", "user_id": "test" } Тело: ```json { "envelope": "<tns:ESIADataVerifyRequest xmlns:tns="urn://mincomsvyaz/esia/uprid/1.4.0" xmlns:ns2="urn://mincomsvyaz/esia/commons/rg_sevices_types/1.4.0">

DEV 1111 111111 Тестов Тест Тестович 229-785-346 20

</tns:ESIADataVerifyRequest>" } ```

Телеметрия

При настроенном адресе ElasticSearch сервис шлет телеметрию в следующем виде: json { "_index": "aggredator_YYYY-MM-DD", "_source": { "event": "service.request.status", "event_id": "02a35e2c9998e4018062", "started": "2019-04-08T14:07:32.140+03:00", "finished": "2019-04-08T14:07:32.140+03:00", "duration": 0.000029052, "data": { "from": 102, "to": 200, "text": "", "id": 3289, "ticket": "78dd8b37-59ee-11e9-b38d-309c23099aca", "service": "test", "processing_code": "7b825678-59ee-11e9-978c-0242ac13000a", "request_to_smev_at": "2019-04-08T11:07:22.000Z", "response_to_smev_at": "2019-04-08T11:07:28.000Z", "response_from_smev_at": "2019-04-08T11:07:31.951Z", "smev_duration": 6, "total_duration": 9.951 }, "certs": { "smev_cert_not_after": "2020-03-28T15:42:54.000Z", "service_cert_not_after": "2020-03-21T15:49:33.000Z", "mq_ca_cert_not_after": "2020-03-21T15:49:31.000Z", "cn": "smev3" }, "service": { "app": "smev3", "service": "smev3", "aggredator": "unknown" }, "system": { "cpu": "x86_64", "os": "linux", "hostname": "9ee52afc2d9b" }, "@timestamp": "2019-04-08T14:07:32.141+03:00" } }

Тип события передается в поле event

Название Описание
smev3.request.send Отправка HTTP сообщения в СМЭВ3 при постановке запроса
smev3.request.parse Разбор ответа от СМЭВ3 при постановке запроса
smev3.result.get Отправка HTTP сообщения в СМЭВ3 при проверке входной очереди
smev3.result.parse Разбор ответа от СМЭВ3 при проверке входной очереди
smev3.result.unregistered Появления сообщения с неизвестным идентификатором
smev3.result.result Появление ответа на ранее отправленный запрос
service.request.status Изменение статуса запроса(100->102->200) и тайминги конкретного запроса
dispatcher.request Служебное. Получение входного сообщения от MQ
dispatcher.result_rejected Служебное. Ошибка отпарвки сообщения в MQ
dispatcher.exception Служебное. Ошибка при обработке сообщения от MQ

Метрики сервиса: json { "_index": "aggredator_2019-04-08", "_source": { "gauges": true, "event": "gauge", "queues": { "pending": 343, "wait_request": 0, "wait_response": 343 }, "certs": { "smev_cert_not_after": "2020-03-28T15:42:54.000Z", "service_cert_not_after": "2020-03-21T15:49:33.000Z", "mq_ca_cert_not_after": "2020-03-21T15:49:31.000Z", "cn": "smev3" }, "service": { "app": "smev3", "service": "smev3", "aggredator": "unknown" }, "system": { "cpu": "x86_64", "os": "linux", "hostname": "9ee52afc2d9b" }, "@timestamp": "2019-04-08T14:51:47.825+03:00" } }

Название Описание
queues.pending общее число входящих запросов, требующих обработки в СМЭВ3(сумма wait_request + wait_response)
queues.wait_request число запросов еще не отпарвленных в СМЭВ3
queues.wait_response число запросов уже отправленных в СМЭВ3, но ожидающих ответа
  • Сервис для отправки сообщений в федеральную СМЭВ3
  • Pipiline status
  • Предназначение
  • Переменные окружения
  • Пример json запроса
  • Телеметрия
  • Подавай заявку сейчас

    Оставьте свои контактные данные и наш менеджер свяжется с вами в ближайшее время