update help elma
This commit is contained in:
@ -1,20 +1,19 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="ru">
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<title>Настройка переносимого сервиса в модуле</title>
|
||||
<title>Configure a portable service in a module</title>
|
||||
<meta name="generator" content="Help+Manual" />
|
||||
<meta name="keywords" content="" />
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="description" content="Переносимые сервисы позволяют интегрировать микросервисы в пользовательские модули, расширяя их функциональные возможности. " />
|
||||
<meta name="description" content="Portable services allow you to integrate microservices into custom modules, extending their functionality." />
|
||||
<meta name="picture" content="" />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:title" content="Cправка по Low-code платформе ELMA365" />
|
||||
<meta property="og:url" content="https://elma365.com/ru/help" />
|
||||
<meta property="og:image" content="" />
|
||||
<meta property="og:site_name" content="ELMA365" />
|
||||
<meta property="og:title" content="Full documentation for BRIX365 platform. Low-code developer guide. User guide. Admin guide. Developer guide." />
|
||||
<meta property="og:url" content="https://brix365.com/en/help" />
|
||||
<meta property="og:image" content="" />
|
||||
<link rel="icon" href="favicon.png" type="image/png" />
|
||||
|
||||
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet" />
|
||||
@ -24,7 +23,6 @@
|
||||
<link rel="stylesheet" href="./article.css" />
|
||||
<link rel="stylesheet" href="./glossary.css" />
|
||||
<link rel="stylesheet" href="./theme.css" />
|
||||
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="helpman_settings.js"></script>
|
||||
<script type="text/javascript" src="helpman_topicinit.js"></script>
|
||||
@ -36,16 +34,16 @@
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=G-M6ETBEC1R9"></script><script>window.dataLayer=window.dataLayer || []; function gtag(){dataLayer.push(arguments);}gtag('js', new Date()); gtag('config', 'G-M6ETBEC1R9');</script>
|
||||
|
||||
<script>!function(e,t,c,n,r,a,m){e.ym=e.ym||function(){(e.ym.a=e.ym.a||[]).push(arguments)},e.ym.l=1*new Date;for(var s=0;s<document.scripts.length;s++)if(document.scripts[s].src===n)return;a=t.createElement(c),m=t.getElementsByTagName(c)[0],a.async=1,a.src=n,m.parentNode.insertBefore(a,m)}(window,document,"script","https://mc.yandex.ru/metrika/tag.js"),ym(83179930,"init",{clickmap:!0,trackLinks:!0,accurateTrackBounce:!0,webvisor:!0})</script><noscript><div><img alt=""src=https://mc.yandex.ru/watch/83179930 style=position:absolute;left:-9999px></div></noscript>
|
||||
|
||||
<header class="header elma-365">
|
||||
<div class="container">
|
||||
<a class="header__logo" href="https://elma365.com/ru/help">
|
||||
<img src="./logo.svg" alt="header logo">
|
||||
<a class="header__logo" href="https://brix365.com/en/help">
|
||||
<img src="./logo-en.svg" alt="header logo">
|
||||
</a>
|
||||
<!-- <div class="hero__search-form" id="search-panel">
|
||||
<form class="search-form" onsubmit="ym(83179930,'reachGoal','poisk')">
|
||||
<form class="search-form" onsubmit="ym(83180416,'reachGoal','poisk')">
|
||||
<label class="search-form__label">
|
||||
<span id="reset-search" class="search__icon"></span>
|
||||
<input class="search-form__input" type="text">
|
||||
@ -65,7 +63,7 @@
|
||||
</div>
|
||||
<div class="header__navi">
|
||||
|
||||
<ul class="header__list"><li><span class="solution-select"><span class="solution-select__selected"></span><svg width="7" height="4" viewBox="0 0 7 4" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M1 1L3.5 3.5L6 1" stroke="white" stroke-linecap="round" stroke-linejoin="round"/></svg><ul class="solution-select__list"><li><a class="project-link" href="https://elma365.com/ru/help/platform/get-trial.html">Платформа</a></li><li><a class="project-link" href="https://elma365.com/ru/help/ecm/ecm-functions.html">ECM</a></li><li><a class="project-link" href="https://elma365.com/ru/help/crm/crm_overview.html">CRM</a></li><li><a class="project-link" href="https://elma365.com/ru/help/service/service-functions.html">Service</a></li><li><a class="project-link" href="https://elma365.com/ru/help/projects/projects-functions.html">Проекты</a></li><li><a class="project-link" href="https://elma365.com/ru/help/business_solutions/-elma365-store.html">Бизнес-решения</a></li></ul></span></li><li><a href="https://api.elma365.com/ru/"target="_blank">API</a></li><li><a href="https://tssdk.elma365.com/"target="_blank">SDK</a></li><li><a href="https://community.elma365.com/" target="_blank">Community</a></li><li><a href="https://elma-academy.com/ru/" target="_blank">Академия</a></li><li><a href="https://elma365.com/ru/" target="_blank">Сайт ELMA365</a></li></ul>
|
||||
<ul class="header__list"><li><span class="solution-select"><span class="solution-select__selected"></span><svg width="7" height="4" viewBox="0 0 7 4" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M1 1L3.5 3.5L6 1" stroke="white" stroke-linecap="round" stroke-linejoin="round"/></svg><ul class="solution-select__list"><li><a class="project-link" href="https://brix365.com/en/help/platform/get-trial.html">Platform</a></li><li><a class="project-link" href="https://brix365.com/en/help/ecm/ecm-functions.html">ECM</a></li><li><a class="project-link" href="https://brix365.com/en/help/crm/crm_overview.html">CRM</a></li><li><a class="project-link" href="https://brix365.com/en/help/service/service-functions.html">Service</a></li><li><a class="project-link" href="https://brix365.com/en/help/projects/projects-functions.html">Projects</a></li><li><a class="project-link" href="https://brix365.com/en/help/business_solutions/-elma365-store.html">Business Solutions</a></li></ul></span></li><li><a href="https://api.brix365.com/en/" target="_blank">API</a></li><li><a href="https://tssdk.brix365.com/" target="_blank">SDK</a></li></ul>
|
||||
|
||||
|
||||
</div>
|
||||
@ -80,8 +78,8 @@
|
||||
|
||||
<aside class="sidebar" id="sidebar">
|
||||
<div class="sidebar__header">
|
||||
<a class="header__logo" href="https://elma365.com/ru/help">
|
||||
<img src="./logo-light.svg">
|
||||
<a class="header__logo" href="https://brix365.com/en/help">
|
||||
<img src="./logo-light-en.svg">
|
||||
</a>
|
||||
<span class="sidebar__close elma-365-close" id="close"></span>
|
||||
</div>
|
||||
@ -94,15 +92,15 @@
|
||||
<div class="article-inner">
|
||||
<div class="content">
|
||||
<header class="article__header">
|
||||
<div class="article__bread" style="display:flex; gap:10px;">
|
||||
<div class="article__bread" style="display:flex; gap:10px;">
|
||||
<span id="subcategory" class="search-res__item-category search-res__item-category_subcategory subcategory article__badge"></span>
|
||||
|
||||
<div class="topic__breadcrumbs">
|
||||
<p><a href="360024498352.html">Модули расширения системы</a> > <a href="extentions.html">Пользовательские модули</a> / Настройка переносимого сервиса в модуле</p>
|
||||
<p><a href="360024498352.html">Modules</a> > <a href="extentions.html">Custom modules</a> / Configure a portable service in a module</p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="topic__title"><h1 class="p_Heading1"><span class="f_Heading1">Настройка переносимого сервиса в модуле</span></h1>
|
||||
<div class="topic__title"><h1 class="p_Heading1"><span class="f_Heading1">Configure a portable service in a module</span></h1>
|
||||
</div>
|
||||
|
||||
</header>
|
||||
@ -111,139 +109,136 @@
|
||||
<a href="#h1-article" class="scroll-top"></a>
|
||||
</div>
|
||||
<!-- Placeholder for topic body. -->
|
||||
<p style="margin: 7px 0 16px 0;">Переносимые сервисы позволяют интегрировать микросервисы в пользовательские модули, расширяя их функциональные возможности. </p>
|
||||
<p class="p_Normal">Подключить переносимый сервис в модуле можно несколькими способами. Нужный вариант выбирается в зависимости от среды размещения самого микросервиса, а также используемой поставки ELMA365. При создании сервиса вы можете передать в модуль: </p>
|
||||
<p style="line-height: 1.20; margin: 7px 0 16px 0;">Portable services allow you to integrate microservices into custom modules, extending their functionality.</p>
|
||||
<p style="line-height: 1.20; margin: 7px 0 16px 0;">There are several ways to connect a portable service in a module. You can select the required option depending on the environment required for the microservice, as well as the BRIX version used. When creating a service, you can send to the module the following addresses: </p>
|
||||
<ul style="list-style-type:disc">
|
||||
<li class="p_Normal">адрес образа микросервиса, размещённого в публичном или приватном репозитории Docker Hub, его внутренние настройки и конфигурации для работы в кластере. Такой способ используется в поставках, поддерживающих развёртывание сервиса в среде исполнения Kubernetes: ELMA365 On‑Premises и SaaS Enterprise;</li><li class="p_Normal">альтернативный адрес сервиса, установленного на внешнем хостинге с публичным доступом. Способ доступен для всех поставок, но зачастую применяется в облачной поставке ELMA365 SaaS Standard, где нельзя обеспечить работу образа сервиса.</li></ul>
|
||||
<p style="margin: 7px 0 16px 0;">В этой статье рассмотрим процесс создания сервиса в пользовательском модуле.</p>
|
||||
<p style="margin: 7px 0 16px 0;">Подробнее об использовании микросервисов в разработке пользовательских решений читайте в статьях:</p>
|
||||
<li style="line-height: 1.20; margin-top: 7px; margin-right: 0; margin-bottom: 16px;">The address of the microservice image hosted in a public or private Docker Hub repository, its internal settings and configurations to work in the cluster. This method is used in versions that support service deployment in Kubernetes runtime environment: BRIX On‑Premises and SaaS Enterprise.</li><li style="line-height: 1.20; margin-top: 7px; margin-right: 0; margin-bottom: 16px;">The alternative address of the service installed on the external hosting with public access. The method is available for all versions, but it is often used in the BRIX SaaS Standard cloud edition, where you cannot use the service image.</li></ul>
|
||||
<p style="line-height: 1.20; margin: 7px 0 16px 0;">In this article, we will look at the process of creating a service in a custom module.</p>
|
||||
<p style="line-height: 1.20; margin: 7px 0 16px 0;">Read more about the use of microservices when developing custom solutions in the following articles:</p>
|
||||
<ul style="list-style-type:disc">
|
||||
<li style="margin-top: 7px; margin-right: 0; margin-bottom: 16px;">особенности переносимых сервисов и пример использования — <a href="portable-microservices.html" class="topiclink">«Переносимые сервисы в модулях»</a>;</li><li style="margin-top: 7px; margin-right: 0; margin-bottom: 16px;">реализация проверки стабильного подключения сервиса — <a href="readiness.html" class="topiclink">«Пример использования Readiness проверки в переносимых сервисах»</a>;</li><li style="margin-top: 7px; margin-right: 0; margin-bottom: 16px;">включение переносимых сервисов в ELMA365 Enterprise — <a href="enable-portable-services.html" class="topiclink">«Включение переносимых сервисов»</a>;</li><li style="margin-top: 7px; margin-right: 0; margin-bottom: 16px;">разработка собственного микросервиса — <a href="development-key-points.html" class="topiclink">«Рекомендации по разработке микросервисов для переносимых сервисов»</a>. </li></ul>
|
||||
<h2 class="p_Heading2"><a id="add-portable-microservices" class="hmanchor"></a><span class="f_Heading2">Добавить и настроить переносимый сервис</span></h2>
|
||||
<li style="line-height: 1.20; margin-top: 7px; margin-right: 0; margin-bottom: 16px;">Features of portable services and use case: <span style="color: #0000ff;"><a href="portable-microservices.html" class="topiclink">Portable services in modules</a></span>.</li><li style="line-height: 1.20; margin-top: 7px; margin-right: 0; margin-bottom: 16px;">Implementation of service connection stability probe: <span style="color: #0000ff;"><a href="readiness.html" class="topiclink">Example of using a Readiness probe in portable services</a></span>.</li><li style="line-height: 1.20; margin-top: 7px; margin-right: 0; margin-bottom: 16px;">Enabling portable services in BRIX Enterprise: <span style="color: #0000ff;"><a href="enable-portable-services.html" class="topiclink">Enable portable services</a></span>.</li><li style="line-height: 1.20; margin-top: 7px; margin-right: 0; margin-bottom: 16px;">Development of custom microservices: <span style="color: #0000ff;"><a href="development-key-points.html" class="topiclink">Guidelines for developing microservices for portable services</a></span>.</li></ul>
|
||||
<h2 class="p_Heading2"><a id="add-service" class="hmanchor"></a><span class="f_Heading2">Add and configure a portable service</span></h2>
|
||||
<ol style="list-style-type:upper-roman">
|
||||
<li value="1" style="margin-top: 7px; margin-right: 0; margin-bottom: 16px;">Откройте страницу пользовательского модуля, в котором подключается переносимый сервис, и перейдите в <span style="font-weight: bold;">Управление</span>.</li><li value="2" style="margin-top: 7px; margin-right: 0; margin-bottom: 16px;">На вкладке <span style="font-weight: bold;">Сервисы</span> нажмите кнопку <span style="font-weight: bold;">+ Сервис</span> и заполните основные настройки в открывшемся окне:</li></ol>
|
||||
<p style="margin: 7px 0 16px 36px;"><img alt="portable-services-1" width="472" height="365" style="margin:0;width:472px;height:365px;border:none" src="portable-services-1.png"/></p>
|
||||
<li value="1" style="line-height: 1.20; margin-top: 7px; margin-right: 0; margin-bottom: 16px;"><span style="font-family: Inter;">Open the page of the custom module in which you want to connect a portable service and go to </span><span style="font-family: Inter; font-weight: bold;">Settings</span><span style="font-family: Inter;">.</span></li><li value="2" style="line-height: 1.20; margin-top: 7px; margin-right: 0; margin-bottom: 16px;"><span style="font-family: Inter;">On the </span><span style="font-family: Inter; font-weight: bold;">Services</span><span style="font-family: Inter;"> tab, click </span><span style="font-family: Inter; font-weight: bold;">+Service</span><span style="font-family: Inter;"> and fill in the fields in the opened window:</span></li></ol>
|
||||
<h2 class="p_Heading2" style="margin: 0 0 0 34px;"><img alt="configure-portable-service-1" width="524" height="363" style="margin:0;width:524px;height:363px;border:none" src="configure-portable-service-1.png"/></h2>
|
||||
<ul style="list-style-type:disc">
|
||||
<li style="margin-top: 7px; margin-right: 0; margin-bottom: 16px;"><span style="font-weight: bold;">Имя</span><span style="font-weight: bold; color: #ff0000;">*</span> — название сервиса, отображаемое в списке на странице модуля;</li></ul>
|
||||
<ul style="list-style-type:disc">
|
||||
<li style="margin-top: 7px; margin-right: 0; margin-bottom: 7px;"><span style="font-weight: bold;">Уникальное имя сервиса</span><span style="font-weight: bold; color: #ff0000;">*</span> — имя, которое будет использоваться в коде или скриптах для обращения к сервису. Заданное при создании имя невозможно изменить в дальнейшем;</li></ul>
|
||||
<ul style="list-style-type:disc">
|
||||
<li style="background: #ffffff; margin-top: 14px; margin-right: 0; margin-bottom: 0;"><span style="font-weight: bold;">Docker контейнер</span> — в блоке настраивается размещение образа микросервиса в отдельном пространстве в среде исполнения Kubernetes. Настройка доступна в поставках ELMA365 On‑Premises и SaaS Enterprise:<ul style="list-style-type:circle">
|
||||
<li style="background: #ffffff; margin-top: 0; margin-right: 0; margin-bottom: 0;"><a id="image-address" class="hmanchor"></a><span style="font-weight: bold;">Адрес образа</span><span style="font-weight: bold; color: #ff0000;">*</span> — URL-адрес Docker‑образа сервиса. Задаётся в одном из форматов: для Docker Hub используйте <a href="portable-services.html#image-address-formats" class="topiclink">краткий относительный путь</a>, для других реестров — <a href="portable-services.html#image-address-full-path" class="topiclink">полный путь</a>.</li></ul></li></ul>
|
||||
<p style="background: #ffffff; margin: 0 0 0 58px;">Когда для образа требуется аутентификация, нужно указать логин и токен учётных данных. Для этого напротив поля нажмите значок ключа и заполните форму одним из следующих способов:</p>
|
||||
<ul style="list-style-type:disc"><ul style="list-style-type:circle"><ul style="list-style-type:square">
|
||||
<li style="background: #ffffff; margin-top: 0; margin-right: 0; margin-bottom: 0;">укажите логин и токен в строковом представлении. При экспорте модуля указанные значения сохраняются и передаются в открытом виде;</li><li style="background: #ffffff; margin-top: 0; margin-right: 0; margin-bottom: 0;">чтобы предотвратить случайную утечку данных авторизации при экспорте модуля, используйте шаблонизированные переменные типа <a href="360009707032.html#string" class="topiclink">Строка (строка)</a>, созданные в виде <a href="extention-settings.html" class="topiclink">параметров настроек модуля</a>. Для этого нажмите значок <span style="font-weight: bold;">{+}</span> и выберите добавленное свойство.</li></ul></li></ul></li></ul>
|
||||
<p style="background: #ffffff; margin: 0 0 0 82px;">В этом случае значения логина и токена указываются на <a href="extention-settings.html#parameters-page" class="topiclink">странице подключения модуля</a>, а не вводятся напрямую в окне <span style="font-weight: bold;">Данные авторизации</span>. При экспорте и последующем импорте модуля конфиденциальная информация не будет случайно передана, поскольку значения параметров настроек удалятся. При этом сами переменные для логина и токена сохранятся.<br />
|
||||
<img alt="portable-services-8" width="638" height="278" style="margin:0;width:638px;height:278px;border:none" src="portable-services-8.png"/></p>
|
||||
<li class="p_Normal"><span style="font-family: Inter; font-weight: bold;">Name</span><span style="font-family: Inter; font-weight: bold; color: #ff0000;">*</span><span style="font-family: Inter;">. Name that will be displayed in the user interface.</span></li><li class="p_Normal"><span style="font-weight: bold;">Unique service name</span><span style="font-weight: bold; color: #ff0000;">*</span>. Name that will be used in code or scripts to access the service. It is set once when the service is created and cannot be changed later.</li><li class="p_Normal"><span style="font-weight: bold;">Docker container</span>. This block configures the placement of the microservice image in a separate space in the Kubernetes environment. The option is available in BRIX On‑Premises and SaaS Enterprise versions:</li></ul>
|
||||
<ul style="list-style-type:disc"><ul style="list-style-type:circle">
|
||||
<li style="background: #ffffff; margin-top: 0; margin-right: 0; margin-bottom: 0;"><span style="font-weight: bold;">Порт HTTP</span><span style="font-weight: bold; color: #ff0000;">*</span> — порт, через который будет происходить взаимодействие с микросервисом. По умолчанию указан порт <span style="font-weight: bold;">3000</span>. При настройке ознакомьтесь с документацией микросервиса и определите, какой из портов следует выбрать.</li></ul>
|
||||
<li style="background: #ffffff; margin-top: 14px; margin-right: 0; margin-bottom: 0;"><span style="font-weight: bold;">Альтернативный адрес сервиса</span> — блок заполняется, если микросервис размещён и функционирует на стороннем сервере с публичным адресом доступа. Вы можете указать URL‑адрес сервиса одним из следующих способов:<ul style="list-style-type:circle">
|
||||
<li style="background: #ffffff; margin-top: 0; margin-right: 0; margin-bottom: 0;">внести адрес в строковом представлении, например <span style="font-weight: bold;">https://example.mathcalculation.com</span>;</li><li style="background: #ffffff; margin-top: 0; margin-right: 0; margin-bottom: 0;">использовать предварительно созданные параметры из настроек модуля и <a href="portable-services.html#alternative-address" class="topiclink">задать шаблон адреса</a>. В этом случае, если компоненты адреса изменяются, вы сможете отредактировать значения параметров в модуле, а не настраивать подключение повторно.</li></ul></li></ul>
|
||||
<p class="p_Normal">Обратите внимание, если в поставках ELMA365 On‑Premises и SaaS Enterprise указать оба адреса, то будет использоваться адрес образа.</p>
|
||||
<li class="p_Normal"><a id="image-address" class="hmanchor"></a><span style="font-weight: bold;">Image address</span><span style="font-weight: bold; color: #ff0000;">*</span>.<span style="font-weight: bold;"> </span>The URL of the Docker image of the service. Specify in one of the formats: use a <a href="portable-services.html#image-address-formats" class="topiclink">short relative path</a> for Docker Hub, and a <a href="portable-services.html#image-address-full-path" class="topiclink">full path</a> for other registries.</li></ul></li></ul>
|
||||
<p class="p_Normal" style="margin: 0 0 0 53px;">When authentication is required for the image, specify your login and token. To do this, click the key icon next to the field and fill out the form in one of the following ways:</p>
|
||||
<ul style="list-style-type:disc"><ul style="list-style-type:circle"><ul style="list-style-type:square">
|
||||
<li class="p_Normal">Enter the values of the login and token. When exporting the module, the specified values will be saved and openly transmitted.</li><li class="p_Normal">To prevent accidental leakage of authentication data when exporting the module, use template variables of the <a href="360009707032.html#string" class="topiclink">String (string)</a> type created as <a href="extention-settings.html" class="topiclink">parameters of module settings</a>. To do this, click the <span style="font-weight: bold;">{+}</span> icon and select the added property.<br />
|
||||
In this case, the user specifies the login and token values on the <a href="extention-settings.html#module-parameters" class="topiclink">module connection page</a> instead of entering them directly in the <span style="font-weight: bold;">Authentication Data</span> window. When exporting and subsequently importing the module, confidential information will not be accidentally transmitted because the values of the module settings will be deleted. At the same time, the variables for the login and token will be preserved.<br />
|
||||
<img alt="configure-portable-service-8" width="517" height="224" style="margin:0;width:517px;height:224px;border:none" src="configure-portable-service-8.png"/></li></ul>
|
||||
<li class="p_Normal"><span style="font-weight: bold;">HTTP port</span><span style="font-weight: bold; color: #ff0000;">*</span>. The port used for interaction with the microservice. The default port is <span style="font-weight: bold;">3000</span>. When configuring, check the microservice documentation and determine which port should be selected.</li></ul></li></ul>
|
||||
<ul style="list-style-type:disc">
|
||||
<li class="p_Normal"><span style="font-family: Inter; font-weight: bold;">Alternative service address</span><span style="font-family: Inter;">. This block is filled in if the microservice is hosted and operates on a third-party server with a public access address. You can specify the URL of the service in one of the following ways:</span></li></ul>
|
||||
<ul style="list-style-type:disc"><ul style="list-style-type:circle">
|
||||
<li class="p_Normal">Enter the address as a string, for example<span style="font-weight: bold;"> https://example.mathcalculation.com</span>.</li><li class="p_Normal">Use pre-created parameters from the module settings and <a href="portable-services.html#alternative-address" class="topiclink">specify the address template</a>. In this case, if the address components change, you will be able to edit the parameter values in the module rather than re-configure the service connection.</li></ul></li></ul>
|
||||
<p class="p_Normal">Please note tnat if both addresses are specified in BRIX On‑Premises and SaaS Enterprise versions, the image address will be used.</p>
|
||||
<ol style="list-style-type:upper-roman">
|
||||
<li value="3" style="margin-top: 7px; margin-right: 0; margin-bottom: 16px;">Нажмите <span style="font-weight: bold;">Сохранить</span>.</li><li value="4" class="p_Normal">Откроется окно <span style="font-weight: bold;">Редактирование сервиса</span>, в котором можно:<br />
|
||||
<img alt="portable-services-5" width="522" height="361" style="margin:0;width:522px;height:361px;border:none" src="portable-services-5.png"/></li></ol>
|
||||
<li value="3" style="line-height: 1.20; margin-top: 7px; margin-right: 0; margin-bottom: 16px;"><span style="font-family: Inter;">Click </span><span style="font-family: Inter; font-weight: bold;">Save</span><span style="font-family: Inter;">.</span></li><li value="4" style="line-height: 1.20; margin-top: 7px; margin-right: 0; margin-bottom: 16px;"><span style="font-family: Inter;">The </span><span style="font-family: Inter; font-weight: bold;">Edit Service</span><span style="font-family: Inter;"> window will open, where you can configure the following settings:</span></li></ol>
|
||||
<p style="line-height: 1.20; margin: 7px 0 16px 34px;"><img alt="configure-portable-service-2" width="517" height="348" style="margin:0;width:517px;height:348px;border:none" src="configure-portable-service-2.png"/></p>
|
||||
<ul style="list-style-type:disc">
|
||||
<li style="margin-top: 7px; margin-right: 0; margin-bottom: 16px;"><span style="font-size: 15px; font-family: Inter;">отредактировать или добавить <a href="portable-services.html#image-address-formats" class="topiclink">адрес образа</a> и порт, а также указать <a href="portable-services.html#docker-settings" class="topiclink">дополнительные настройки Docker‑контейнера</a>. Например, можно задать количество экземпляров микросервиса, добавить переменные окружения, настроить Liveness- и Readiness‑пробы</span>;</li><li style="margin-top: 7px; margin-right: 0; margin-bottom: 16px;"><span style="font-size: 15px; font-family: Inter;">отредактировать или указать публичный адрес сервиса, нажав значок шестерёнки справа от поля </span><span style="font-size: 15px; font-family: Inter; font-weight: bold;">Альтернативный адрес сервиса</span><span style="font-size: 15px; font-family: Inter;">. Чтобы адрес формировался на основе параметров модуля, для него можно <a href="portable-services.html#alternative-address" class="topiclink">задать шаблон</a></span>.</li></ul>
|
||||
<h2 class="p_Heading2"><a id="image-address-formats" class="hmanchor"></a><span class="f_Heading2">Форматы для адреса образа</span></h2>
|
||||
<p style="line-height: 1.28; margin: 0 0 11px 0;"><span style="font-size: 15px; font-family: Inter;">В зависимости от размещения Docker‑образа укажите в настройках сервиса:</span></p>
|
||||
<ol style="list-style-type:upper-roman"><ul style="list-style-type:disc">
|
||||
<li style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;"><span style="font-size: 15px; font-family: Inter; font-weight: bold;">краткий относительный путь</span><span style="font-size: 15px; font-family: Inter;"> — применяется, если образ расположен в реестре по умолчанию — Docker Hub.</span></li></ul></li></ol>
|
||||
<p style="line-height: 1.28; margin: 0 0 11px 24px;"><span style="font-size: 15px; font-family: Inter;">Формат: </span><span style="font-size: 15px; font-family: Inter; font-weight: bold;"><image_path>:<tag></span><span style="font-size: 15px; font-family: Inter;">, где:</span></p>
|
||||
<ol style="list-style-type:upper-roman"><ul style="list-style-type:disc"><ul style="list-style-type:circle">
|
||||
<li style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;"><span style="font-size: 15px; font-family: Inter; font-weight: bold;"><image_path></span><span style="font-size: 15px; font-family: Inter;"> — путь к образу в реестре. Обязателен;</span></li><li style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;"><span style="font-size: 15px; font-family: Inter; font-weight: bold;"><tag></span><span style="font-size: 15px; font-family: Inter;"> — тег образа. Необязателен.</span></li></ul></li></ul></li></ol>
|
||||
<li style="line-height: 1.20; margin-top: 7px; margin-right: 0; margin-bottom: 16px;">Edit or add the <a href="portable-services.html#image-address-formats" class="topiclink">image address</a> and port, as well as specify <a href="portable-services.html#docker-settings" class="topiclink">additional settings for the Docker container</a>. For example, you can set the number of microservice instances, add environment variables, configure Liveness and Readiness probes.</li><li style="line-height: 1.20; margin-top: 7px; margin-right: 0; margin-bottom: 16px;">Edit or add the public service address by clicking the gear icon to the right of the <span style="font-weight: bold;">Alternative service address</span> field. To generate address based on the module parameters, configure the <a href="portable-services.html#alternative-address" class="topiclink">address template</a>.</li></ul>
|
||||
<h2 class="p_Heading2"><a id="image-address-formats" class="hmanchor"></a><span class="f_Heading2">Image address formats</span></h2>
|
||||
<p style="line-height: 1.38; margin: 0 0 13px 0;">Depending on the location of the Docker image, specify the following in the service settings:</p>
|
||||
<ul style="">
|
||||
<li style="line-height: 1.38; margin-top: 0; margin-right: 0; margin-bottom: 13px;"><span style="font-weight: bold;">Short relative path</span>.<span style="font-weight: bold;"> </span>It is applied if the image is located in the default registry<span style="color: #394149;">, </span>which is<span style="color: #394149;"> </span>Docker Hub.</li></ul>
|
||||
<p style="line-height: 1.38; margin: 0 0 13px 34px;">Format: <span style="font-weight: bold;"><image_path>:<tag></span>, where:</p>
|
||||
<ul style=""><ul style="list-style-type:circle">
|
||||
<li style="line-height: 1.38; margin-top: 0; margin-right: 0; margin-bottom: 0;"><span style="font-weight: bold;"><image_path> </span>is the path to the image in the registry. It is required.</li><li style="line-height: 1.38; margin-top: 0; margin-right: 0; margin-bottom: 13px;"><span style="font-weight: bold;"><tag></span> is the image tag. It is optional.</li></ul></li></ul>
|
||||
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">начало примера</span></p>
|
||||
<p style="line-height: 1.28; page-break-after: avoid; margin: 0 0 11px 0;"><span style="font-size: 15px; font-family: Inter; font-weight: bold;">Примеры</span></p>
|
||||
<p style="line-height: 1.28; margin: 0 0 11px 0;"><span style="font-size: 15px; font-family: Inter;">Адреса контейнеров в репозитории Docker Hub:</span></p>
|
||||
<ul style="list-style-type:disc">
|
||||
<li style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;"><span style="font-size: 15px; font-family: Inter; font-weight: bold;">nginx</span><span style="font-size: 15px; font-family: Inter;">;</span></li><li style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;"><span style="font-size: 15px; font-family: Inter; font-weight: bold;">nginx:latest</span><span style="font-size: 15px; font-family: Inter;">;</span></li><li style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;"><span style="font-size: 15px; font-family: Inter; font-weight: bold;">chialab/math-api</span><span style="font-size: 15px; font-family: Inter;">;</span></li><li style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;"><span style="font-size: 15px; font-family: Inter; font-weight: bold;">chialab/math-api:latest</span><span style="font-size: 15px; font-family: Inter;">;</span></li><li style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;"><span style="font-size: 15px; font-family: Inter; font-weight: bold;">company/service</span><span style="font-size: 15px; font-family: Inter;">;</span></li><li style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;"><span style="font-size: 15px; font-family: Inter; font-weight: bold;">company/service:v1.0.0</span><span style="font-size: 15px; font-family: Inter;">.</span></li></ul>
|
||||
<p class="p_Normal"><span style="font-weight: bold;">Examples</span></p>
|
||||
<p class="p_Normal">Container addresses in the Docker Hub repository:</p>
|
||||
<ul style="">
|
||||
<li class="p_Normal"><span style="font-weight: bold;">nginx</span>.</li><li class="p_Normal"><span style="font-weight: bold;">nginx:latest</span>.</li><li class="p_Normal"><span style="font-weight: bold;">chialab/math-api</span>.</li><li class="p_Normal"><span style="font-weight: bold;">chialab/math-api:latest</span>.</li><li class="p_Normal"><span style="font-weight: bold;">company/service</span>.</li><li class="p_Normal"><span style="font-weight: bold;">company/service:v1.0.0</span>.</li></ul>
|
||||
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">конец примера</span></p>
|
||||
<ol style="list-style-type:upper-roman"><ul style="list-style-type:disc">
|
||||
<li style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;"><a id="image-address-full-path" class="hmanchor"></a><span style="font-size: 15px; font-family: Inter; font-weight: bold;">полный путь</span><span style="font-size: 15px; font-family: Inter;"> — для публичного или приватного репозитория, расположенного на отдельном сервере.</span></li></ul></li></ol>
|
||||
<p style="line-height: 1.28; margin: 0 0 11px 24px;"><span style="font-size: 15px; font-family: Inter;">Формат: </span><span style="font-size: 15px; font-family: Inter; font-weight: bold;"><registry>:<port>/<image_path>:<tag></span><span style="font-size: 15px; font-family: Inter;">, где:</span></p>
|
||||
<ol style="list-style-type:decimal"><ul style="list-style-type:disc"><ul style="list-style-type:circle">
|
||||
<li style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;"><span style="font-size: 15px; font-family: Inter; font-weight: bold;"><registry></span><span style="font-size: 15px; font-family: Inter;"> — доменный адрес реестра образов. Обязателен;</span></li><li style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;"><span style="font-size: 15px; font-family: Inter; font-weight: bold;"><port></span><span style="font-size: 15px; font-family: Inter;"> — порт, по которому можно получить доступ к реестру образов. Необязателен;</span></li><li style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;"><span style="font-size: 15px; font-family: Inter; font-weight: bold;"><image_path></span><span style="font-size: 15px; font-family: Inter;"> — путь к образу в реестре. Обязателен;</span></li><li style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;"><span style="font-size: 15px; font-family: Inter; font-weight: bold;"><tag></span><span style="font-size: 15px; font-family: Inter;"> — тег образа. Необязателен.</span></li></ul></li></ul></li></ol>
|
||||
<ul style="">
|
||||
<li style="line-height: 1.38; background: #ffffff; margin-top: 0; margin-right: 0; margin-bottom: 13px;"><a id="image-address-full-path" class="hmanchor"></a><span style="font-weight: bold;">Full path</span>.<span style="font-weight: bold;"> </span>It is applied to a public or private repository located on a separate server.</li></ul>
|
||||
<p style="line-height: 1.38; background: #ffffff; margin: 0 0 13px 34px;">Format: <span style="font-weight: bold;"><registry>:<port>/<image_path>:<tag></span>, where:</p>
|
||||
<ul style=""><ul style="list-style-type:circle">
|
||||
<li style="line-height: 1.38; margin-top: 0; margin-right: 0; margin-bottom: 0;"><span style="font-weight: bold;"><registry></span> is the domain address of the image registry. It is required.</li><li style="line-height: 1.38; margin-top: 0; margin-right: 0; margin-bottom: 0;"><span style="font-weight: bold;"><port> </span>is the port on which the image registry can be accessed. It is optional.</li><li style="line-height: 1.38; margin-top: 0; margin-right: 0; margin-bottom: 0;"><span style="font-weight: bold;"><image_path> </span>is the path to the image in the registry. It is required.</li><li style="line-height: 1.38; margin-top: 0; margin-right: 0; margin-bottom: 0;"><span style="font-weight: bold;"><tag></span> is the image tag. It is optional.</li></ul></li></ul>
|
||||
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">начало примера</span></p>
|
||||
<p style="line-height: 1.28; margin: 0 0 11px 0;"><span style="font-size: 15px; font-family: Inter; font-weight: bold;">Примеры</span></p>
|
||||
<p style="line-height: 1.28; margin: 0 0 11px 0;"><span style="font-size: 15px; font-family: Inter;">Адреса контейнеров в сторонних реестрах:</span></p>
|
||||
<ul style="list-style-type:disc">
|
||||
<li style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;"><span style="font-size: 15px; font-family: Inter; font-weight: bold;">company.goharbor.io/math-api</span><span style="font-size: 15px; font-family: Inter;">;</span></li><li style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;"><span style="font-size: 15px; font-family: Inter; font-weight: bold;">company.goharbor.io:5005/math-api:v1.0.0</span><span style="font-size: 15px; font-family: Inter;">;</span></li><li style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;"><span style="font-size: 15px; font-family: Inter; font-weight: bold;">registry.company.com/service/app</span><span style="font-size: 15px; font-family: Inter;">;</span></li><li style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;"><span style="font-size: 15px; font-family: Inter; font-weight: bold;">registry.company.com:5005/service/app:latest</span><span style="font-size: 15px; font-family: Inter;">.</span></li></ul>
|
||||
<p class="p_Normal"><span style="font-weight: bold;">Examples</span></p>
|
||||
<p class="p_Normal">Container addresses in third-party registries:</p>
|
||||
<ul style="">
|
||||
<li class="p_Normal"><span style="font-weight: bold;">company.goharbor.io/math-api</span>.</li><li class="p_Normal"><span style="font-weight: bold;">company.goharbor.io:5005/math-api:v1.0.0</span>.</li><li class="p_Normal"><span style="font-weight: bold;">registry.company.com/service/app</span>.</li><li class="p_Normal"><span style="font-weight: bold;">registry.company.com:5005/service/app:latest</span>.</li></ul>
|
||||
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">конец примера</span></p>
|
||||
<p style="line-height: 1.28; margin: 0 0 11px 0;"><span style="font-size: 15px; font-family: Inter;">Подробнее об адресах образов читайте в </span><span style="font-size: 15px; font-family: Calibri,Vectora,'Droid Sans','Open Sans',Frutiger,sans-serif; color: #0563c1;"><a href="https://kubernetes.io/docs/concepts/containers/images/#image-names" target="_blank" class="weblink">официальной документации Kubernetes</a></span><span style="font-size: 15px; font-family: Inter;">.</span></p>
|
||||
<h3 class="p_Heading3"><span class="f_Heading3">Проверка корректности адреса</span></h3>
|
||||
<p style="line-height: 1.28; margin: 0 0 11px 0;"><span style="font-size: 15px; font-family: Inter;">Для проверки загрузите образ микросервиса с помощью команды: </span></p>
|
||||
<p style="line-height: 1.38; margin: 0 0 13px 0;">Read more about image addresses in the <span style="color: #0563c1;"><a href="https://kubernetes.io/docs/concepts/containers/images/#image-names" target="_blank" class="weblink">official Kubernetes documentation.</a></span></p>
|
||||
<h3 class="p_Heading3"><span class="f_Heading3">Verify the address validity</span></h3>
|
||||
<p class="p_Normal">To verify the address, load the microservice image using the following command:</p>
|
||||
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">docker pull <image_address></span></p>
|
||||
<p style="line-height: 1.28; margin: 0 0 11px 0;"><span style="font-size: 15px; font-family: Inter;">Где </span><code><b><image_address></b></code><span style="font-size: 15px; font-family: 'Courier New',Courier,monospace; font-weight: bold;"> </span><span style="font-size: 15px; font-family: Inter;">— адрес образа.</span></p>
|
||||
<p style="line-height: 1.28; margin: 0 0 11px 0;"><span style="font-size: 15px; font-family: Inter;">Если загрузка проходит успешно, адрес можно использовать для сервиса в модуле ELMA365.</span></p>
|
||||
<h2 class="p_Heading2"><a id="alternative-address" class="hmanchor"></a><span class="f_Heading2">Шаблон альтернативного адреса сервиса</span></h2>
|
||||
<p style="margin: 7px 0 7px 0;">Альтернативный адрес сервиса можно указать с помощью параметров модуля. Такой способ позволяет более гибко управлять переносимым сервисом. Например, вы можете изменять компоненты адреса на <a href="extention-settings.html#parameters-page" class="topiclink">странице подключения модуля</a>. </p>
|
||||
<p style="margin: 7px 0 7px 0;">Чтобы настроить шаблон адреса сервиса, выполните следующие шаги:</p>
|
||||
<p class="p_Normal">Where <code><b><image_address></b></code> is the address of the image.</p>
|
||||
<p class="p_Normal">If the download is successful, the address can be used for the service in the BRIX module.</p>
|
||||
<h2 class="p_Heading2"><a id="alternative-address" class="hmanchor"></a><span class="f_Heading2">Template for the alternative service address</span></h2>
|
||||
<p style="line-height: 1.20; margin: 7px 0 16px 0;">The alternative service address can be specified using the module parameters. This method allows you to manage the portable service in a more flexible way. For example, you can change the address components on the <a href="extention-settings.html#module-parameters" class="topiclink">module connection page</a>. </p>
|
||||
<p style="line-height: 1.20; margin: 7px 0 16px 0;">To configure the service address template, follow these steps:</p>
|
||||
<ol style="list-style-type:upper-roman">
|
||||
<li value="1" style="margin-top: 7px; margin-right: 0; margin-bottom: 7px;">Откройте страницу управления пользовательского модуля, в который будет добавляться переносимый сервис.</li><li value="2" style="margin-top: 7px; margin-right: 0; margin-bottom: 7px;">Перейдите на вкладку <span style="font-weight: bold;">Настройки</span> и создайте свойства типа <span style="font-weight: bold;">Строка (строка)</span>, из которых будет состоять адрес сервиса. Например, это могут быть два параметра: для записи протокола передачи данных и для указания базового адреса сервиса.</li><li value="3" style="margin-top: 7px; margin-right: 0; margin-bottom: 7px;">В настройках при создании сервиса в модуле укажите шаблон в поле <span style="font-weight: bold;">Адрес сервиса</span>. Для этого нажмите значок <span style="font-weight: bold;">{+}</span>, выберите созданные ранее параметры и сохраните настройки.<br />
|
||||
<img alt="portable-services-6" width="589" height="304" style="margin:0;width:589px;height:304px;border:none" src="portable-services-6.png"/></li><li value="4" class="p_Normal">Чтобы отредактировать указанный адрес, в настройках сервиса нажмите значок шестерёнки справа от опции <span style="font-weight: bold;">Альтернативный адрес сервиса</span>. Отредактируйте шаблон или задайте новый адрес и сохраните изменения.</li><li value="5" class="p_Normal">Сохраните настройки сервиса.</li></ol>
|
||||
<p class="p_Normal">Теперь адрес сервиса можно указать, изменить или удалить в настройках включённого модуля. Если поля не заполнены, связь с сервисом недоступна.<br />
|
||||
<img alt="portable-services-7" width="889" height="206" style="margin:0;width:889px;height:206px;border:none" src="portable-services-7.png"/></p>
|
||||
<h2 class="p_Heading2"><a id="docker-settings" class="hmanchor"></a><span class="f_Heading2">Настройки Docker-контейнера</span></h2>
|
||||
<p style="line-height: 1.28; margin: 0 0 11px 0;"><span style="font-size: 15px; font-family: Inter;">В поставках ELMA365 On‑Premises и SaaS Enterprise образ микросервиса можно разместить в среде исполнения Kubernetes. Чтобы задать настройки развёртывания микросервиса, нажмите значок шестерёнки справа от названия блока </span><span style="font-size: 15px; font-family: Inter; font-weight: bold;">Docker контейнер</span><span style="font-size: 15px; font-family: Inter;">. В открывшемся окне настройка выполняется на нескольких вкладках</span>: <a href="portable-services.html#main-tab" class="topiclink">Основные настройки</a>, <a href="portable-services.html#variables-tab" class="topiclink">Переменные окружения</a>, <a href="portable-services.html#liveness-tab" class="topiclink">Liveness</a>, <a href="portable-services.html#readiness-tab" class="topiclink">Readiness</a>.</p>
|
||||
<h3 class="p_Heading3"><a id="main-tab" class="hmanchor"></a><span class="f_Heading3">Вкладка «Основные настройки»</span></h3>
|
||||
<p style="margin: 7px 0 16px 0;"><img alt="portable-services-2" width="520" height="314" style="margin:0;width:520px;height:314px;border:none" src="portable-services-2.png"/></p>
|
||||
<li value="1" style="line-height: 1.20; margin-top: 7px; margin-right: 0; margin-bottom: 16px;">Open the settings page of the custom module where you want to add the portable service.</li><li value="2" style="line-height: 1.20; margin-top: 7px; margin-right: 0; margin-bottom: 16px;">Go to the <span style="font-weight: bold;">Settings</span> tab and create properties of the <span style="font-weight: bold;">String (string) </span>type that will make up the service address. For example, it can be two parameters: to record the data transfer protocol and to specify the base address of the service.</li><li value="3" style="line-height: 1.20; margin-top: 7px; margin-right: 0; margin-bottom: 16px;">In the settings, when creating a service in the module, specify a template in the <span style="font-weight: bold;">Service address</span> field. To do this, click the <span style="font-weight: bold;">{+}</span> icon, select the previously created parameters, and save the settings.<br />
|
||||
<img alt="configure-portable-service-6" width="613" height="300" style="margin:0;width:613px;height:300px;border:none" src="configure-portable-service-6.png"/></li><li value="4" style="line-height: 1.20; margin-top: 7px; margin-right: 0; margin-bottom: 16px;">To edit the specified address, in the service settings, click the gear icon to the right of the <span style="font-weight: bold;">Alternative Service Address</span> option. Edit the template or set a new address and save the changes.</li><li value="5" style="line-height: 1.20; margin-top: 7px; margin-right: 0; margin-bottom: 16px;">Save the service settings. The service address can now be specified, modified, or deleted in the enabled module settings. If the fields are empty, communication with the service is unavailable.<br />
|
||||
<img alt="configure-portable-service-7" width="719" height="172" style="margin:0;width:719px;height:172px;border:none" src="configure-portable-service-7.png"/></li></ol>
|
||||
<h2 class="p_Heading2"><a id="docker-settings" class="hmanchor"></a><span class="f_Heading2">Docker container settings</span></h2>
|
||||
<p style="line-height: 1.20; margin: 7px 0 16px 0;">In BRIX On-Premises and SaaS Enterprise editions, a microservice image can be placed in the Kubernetes environment. To configure settings for microservice deployment, click the gear icon to the right of the <span style="font-weight: bold;">Docker container</span> block. In the window opened, the settings are performed on the following tabs: <span style="font-family: Inter;"><a href="portable-services.html#main-tab" class="topiclink">Main Settings</a>, <a href="portable-services.html#variables-tab" class="topiclink">Environment Variables</a>, <a href="portable-services.html#liveness-tab" class="topiclink">Liveness</a>, <a href="portable-services.html#readiness-tab" class="topiclink">Readiness</a>.</span></p>
|
||||
<h3 class="p_Heading3"><a id="main-tab" class="hmanchor"></a><span class="f_Heading3">Main Settings tab</span></h3>
|
||||
<h3 class="p_Heading3"><img alt="configure-portable-service-5" width="551" height="304" style="margin:0;width:551px;height:304px;border:none" src="configure-portable-service-5.png"/></h3>
|
||||
<ul style="list-style-type:disc">
|
||||
<li style="margin-top: 7px; margin-right: 0; margin-bottom: 7px;"><span style="font-size: 15px; font-family: Inter; font-weight: bold;">Адрес образа</span><span style="font-size: 15px; font-family: Inter; font-weight: bold; color: #ff0000;">*</span><span style="font-size: 15px; font-family: Inter;">, </span><span style="font-size: 15px; font-family: Inter; font-weight: bold;">Порт HTTP</span><span style="font-size: 15px; font-family: Inter; font-weight: bold; color: #ff0000;">*</span><span style="font-size: 15px; font-family: Inter;"> — вы можете отредактировать адрес образа, </span>логин и токен для доступа к репозиторию<span style="font-size: 15px; font-family: Inter;"> и порт подключения, указанные при </span><span style="font-size: 15px; font-family: Calibri,Vectora,'Droid Sans','Open Sans',Frutiger,sans-serif; color: #0563c1;"><a href="portable-services.html#add-portable-microservices" class="topiclink">создании переносимого сервиса</a></span>;</li><li style="margin-top: 7px; margin-right: 0; margin-bottom: 7px;"><span style="font-size: 15px; font-family: Inter; font-weight: bold;">Дополнительные порты </span><span style="font-size: 15px; font-family: Inter;">— вы можете указать для микросервиса дополнительные порты, с помощью которых другие микросервисы модуля смогут к нему обращаться. Для одного микросервиса доступно не более 10 дополнительных портов.</span></li></ul>
|
||||
<li style="text-align: justify; line-height: 1.20; margin-top: 7px; margin-right: 0; margin-bottom: 7px;"><span style="font-weight: bold;">Image address</span><span style="font-weight: bold; color: #ff0000;">*</span>, <span style="font-weight: bold;">HTTP port</span><span style="font-weight: bold; color: #ff0000;">*</span>. You can edit the image address, login and token to access the repository and the connection port specified when creating the portable service.</li><li style="text-align: justify; line-height: 1.20; margin-top: 7px; margin-right: 0; margin-bottom: 7px;"><span style="font-weight: bold;">Additional ports</span>. You can specify additional ports for the microservice which will be used for connection with other module microservices. Maximum 10 additional ports are available for one microservice.</li></ul>
|
||||
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">начало внимание</span></p>
|
||||
<p style="line-height: 1.28; margin: 0 0 11px 0;"><span style="font-size: 15px; font-family: Inter;">Чтобы указание дополнительных портов в настройках переносимых сервисов стало доступно, включите фича-флаг </span><code><b>allowBabysitterOptionalPorts</b></code><span style="font-size: 15px; font-family: Inter;">. Подробнее читайте в статьях </span><span style="font-size: 15px; font-family: Inter; color: #0563c1;"><a href="change-settings-enterprise.html#enable-feature-flag-enterpeise" class="topiclink">«Изменение параметров ELMA365 Enterprise»</a></span><span style="font-size: 15px; font-family: Inter;"> и </span><span style="font-size: 15px; font-family: Inter; color: #0563c1;"><a href="change-elma365standard-parameters.html#enable-feature-flag-standard" class="topiclink">«Изменение параметров ELMA365 Standard»</a></span><span style="font-size: 15px; font-family: Inter;">.</span></p>
|
||||
<p style="line-height: 1.20; margin: 7px 0 7px 0;">To specify additional ports in the portable services settings, enable the <code><b>allowBabysitterOptionalPorts</b></code> flag. For more information, see the <a href="change-settings-enterprise.html#enable-feature-flag-enterpeise" class="topiclink">Modify BRIX Enterprise parameters</a> and <a href="change-elma365standard-parameters.html#enable-feature-flag-standard" class="topiclink">Modify BRIX Standard parameters</a> articles.</p>
|
||||
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">конец внимание</span></p>
|
||||
<ul style="list-style-type:disc">
|
||||
<li style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;"><span style="font-size: 15px; font-family: Inter; font-weight: bold;">Количество экземпляров</span><span style="font-size: 15px; font-family: Inter;"> — </span>укажите, сколько экземпляров микросервисов развернуть и запустить. При изменении количества следует учитывать, что в ELMA365 не поддерживается репликация сервисов. Если это не заложено в микросервис, то каждый из запущенных экземпляров не будет связан с остальными.</li></ul>
|
||||
<p style="line-height: 1.28; margin: 0 0 11px 0;"><span style="font-size: 15px; font-family: Inter;">Вы можете настроить дополнительные параметры переносимого сервиса с помощью ConfigMap. Например, задать лимиты использования ресурсов, включить автомасштабирование микросервиса и настроить размещение подов на узлах кластера. Подробнее читайте в статье </span><span style="font-size: 15px; font-family: Calibri,Vectora,'Droid Sans','Open Sans',Frutiger,sans-serif; color: #0563c1;"><a href="configmap.html" class="topiclink">«Настройка параметров переносимых сервисов через ConfigMap»</a></span><span style="font-size: 15px; font-family: Inter;">.</span></p>
|
||||
<h3 class="p_Heading3"><a id="variables-tab" class="hmanchor"></a><span class="f_Heading3">Вкладка «Переменные окружения»</span></h3>
|
||||
<p style="margin: 7px 0 16px 0;">На этой вкладке создаются переменные окружения образа микросервиса. Они используются, если в микросервисе допускается конфигурирование через переменные среды. Определить доступность конфигурирования можно в документации микросервиса. Для создания переменной на вкладке нажмите <span style="font-weight: bold;">+ Переменная окружения</span> и заполните шаблон параметра сервиса в открывшемся окне.</p>
|
||||
<p style="margin: 7px 0 16px 0;"><img alt="portable-services-3" width="581" height="366" style="margin:0;width:581px;height:366px;border:none" src="portable-services-3.png"/></p>
|
||||
<p style="margin: 7px 0 16px 0;">Обратите внимание, при добавлении или изменении переменных окружения микросервис перезапускается.</p>
|
||||
<p style="margin: 7px 0 16px 0;">Вы можете не только задавать переменные окружения при разработке, но и предоставлять возможность их изменения конечным пользователям. Для этого при создании переменной в шаблоне можно использовать <a href="https://elma365.com/ru/help/platform/extention-settings.html" target="_blank" class="weblink">параметры настройки модуля</a>. </p>
|
||||
<p style="margin: 7px 0 16px 0;">Например, в настройках модуля есть свойство <span style="font-weight: bold;">ServiceTimeout</span>. Можно создать переменную окружения <span style="font-weight: bold;">R</span><span style="font-weight: bold;">equestTimeout</span> и указать в её шаблоне <code><b>{$ServiceTimeout}</b></code>. Тогда пользователи будут изменять значение свойства на главной странице настроек модуля и при этом устанавливать значение для переменной окружения в микросервисе. </p>
|
||||
<p style="margin: 7px 0 16px 0;">Если в шаблоне переменных окружения используются параметры настройки модуля, вы можете включить опцию <span style="font-weight: bold;">Перезапускать при изменении настроек модуля</span>. В этом случае, когда значения параметров на главной странице настроек модуля изменятся, сервис будет перезапускаться, т. е. полностью удаляться из Kubernetes‑кластера и разворачиваться повторно. </p>
|
||||
<h3 class="p_Heading3"><a id="liveness-tab" class="hmanchor"></a><span class="f_Heading3">Вкладка «Liveness»</span></h3>
|
||||
<p style="margin: 7px 0 16px 0;">Здесь вы можете включить возможность Kubernetes автоматически перезапускать микросервис в случае его неработоспособности. В выпадающем списке доступны следующие опции: <span style="font-weight: bold;">Command</span>, <span style="font-weight: bold;">HTTP</span>, <span style="font-weight: bold;">TCP</span>. Прежде чем включать Liveness-пробы и выбирать их тип, ознакомьтесь с документацией подключаемого микросервиса.</p>
|
||||
<h3 class="p_Heading3"><a id="readiness-tab" class="hmanchor"></a><span class="f_Heading3">Вкладка «Readiness»</span></h3>
|
||||
<p style="margin: 7px 0 16px 0;">На этой вкладке включается возможность Kubernetes не позволять подключаться к микросервису до его полной инициализации. В выпадающем списке доступны следующие опции: <span style="font-weight: bold;">Command</span>, <span style="font-weight: bold;">HTTP</span>, <span style="font-weight: bold;">TCP</span>. Прежде чем включать Readiness-пробы и выбирать их тип, ознакомьтесь с документацией подключаемого микросервиса.</p>
|
||||
<p style="margin: 7px 0 7px 0;">Конфигурирование параметров на вкладках <span style="font-weight: bold;">Liveness </span>и <span style="font-weight: bold;">Readiness</span> следует выполнять с особой осторожностью. В случае некорректной настройки и получении невалидного ответа Kubernetes будет считать микросервис неработоспособным и перезагружать его вне зависимости от его реального статуса. Включать параметры Liveness-проб и Readiness-проб рекомендуется, только если вы чётко понимаете специфику и последствия их использования.</p>
|
||||
<p style="margin: 7px 0 7px 0;">Чтобы закончить настройку добавленного сервиса, в окне редактирования нажмите кнопку <span style="font-weight: bold;">Сохранить</span>.</p>
|
||||
<p style="margin: 7px 0 7px 0;">Все созданные сервисы будут отображаться в управлении модулем, на вкладке <span style="font-weight: bold;">Сервисы</span>. Чтобы повторно открыть окно редактирования сервиса, нажмите на его название в списке. Для удаления сервиса отметьте его флажком и нажмите на появившуюся в правом углу страницы кнопку <span style="font-weight: bold;">Удалить</span>.</p>
|
||||
<h2 class="p_Heading2"><a id="on-off-microservices" class="hmanchor"></a><span class="f_Heading2">Запуск и выключение микросервисов</span></h2>
|
||||
<p class="p_Normal">При включении модуля будут запущены все добавленные в него микросервисы. При выключении модуля микросервисы будут остановлены и удалены.</p>
|
||||
<p class="p_Normal">Один и тот же образ микросервиса, развёрнутый из разных модулей в одной компании, будет иметь разные экземпляры микросервиса.</p>
|
||||
<h2 class="p_Heading2"><a id="monitor-of-microservices" class="hmanchor"></a><span class="f_Heading2">Монитор микросервисов</span></h2>
|
||||
<p style="margin: 7px 0 16px 0;">При включенном модуле статус добавленных в него микросервисов можно отслеживать на его странице. Для этого рядом с названием модуля<span style="font-weight: bold;"> </span>отображается <span style="font-weight: bold;">Монитор сервисов</span>.</p>
|
||||
<p style="margin: 7px 0 16px 0;"><img alt="portable-services-4" width="1037" height="283" style="margin:0;width:1037px;height:283px;border:none" src="portable-services-4.png"/></p>
|
||||
<p style="line-height: 1.28; margin: 0 0 11px 0;">Нажав на кнопку, вы<span style="font-weight: bold;"> </span>увидите список всех микросервисов, заданных переносимыми сервисами. По каждому сервису отображаются данные об образе, из которого поднимается контейнер, о количестве набора реплик и их текущем статусе. При наличии возможностей кластера Kubernetes предоставлять метрики указываются также данные о потреблении ресурсов. </p>
|
||||
<h2 class="p_Heading2"><a id="interaction" class="hmanchor"></a><span class="f_Heading2">Взаимодействие с микросервисом</span></h2>
|
||||
<h3 class="p_Heading3"><a id="scripts" class="hmanchor"></a><span class="f_Heading3">Скрипты</span></h3>
|
||||
<p class="p_Normal">Взаимодействовать с микросервисами можно через API, предоставляемый скриптами. Он доступен в серверных скриптах и только в модуле, к которому принадлежит микросервис, например, в виджетах или бизнес-процессах модуля. В клиентских скриптах доступа к микросервисам нет. </p>
|
||||
<p class="p_Normal">Доступ к сервисам осуществляется через пространство имён <code><b>Namespace.services</b></code>. Если модуль не содержит переносимых сервисов, то это пространство имён будет отсутствовать в автозаполнении скриптов.</p>
|
||||
<p class="p_Normal">Для взаимодействия с микросервисом следует использовать метод <code><b>fetch</b></code>.</p>
|
||||
<p class="p_Normal">Простой GET-запрос без дополнительных параметров отправляется, если указать в качестве параметра относительный путь до API микросервиса. </p>
|
||||
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">const res = await Namespace.services.vap.fetch("/SayHello");</span><br />
|
||||
<span class="f_CodeExample">if (res.ok) {</span><br />
|
||||
<span class="f_CodeExample">const resText = await res.text();</span><br />
|
||||
<li style="line-height: 1.28; margin-top: 0; margin-right: 0; margin-bottom: 11px;"><span style="font-family: Inter; font-weight: bold;">Number of instances</span><span style="font-family: Inter;">. Specify how many microservice instances to deploy and launch. When you change the number of instances, please note that BRIX itself doesn’t support any type of service replication. If it is not incorporated in the microservice, each of the instances will be entirely separate from others.</span></li></ul>
|
||||
<p style="line-height: 1.28; margin: 0 0 11px 0;"><span style="font-family: Inter;">You can configure additional parameters of the portable service using ConfigMap. For example, you can set resource utilization limits, enable autoscaling of the microservice, and configure pod placement on cluster nodes. For more details, see the <a href="configmap.html" class="topiclink">Configure parameters of portable services using ConfigMap</a> article.</span></p>
|
||||
<h3 class="p_Heading3"><a id="variables-tab" class="hmanchor"></a><span class="f_Heading3">Environment Variables tab</span></h3>
|
||||
<p style="text-align: justify; line-height: 1.20; margin: 7px 0 7px 0;">On this tab, you can create environment variables for the microservice image. They are used if the microservice allows configuration via environment variables. The availability of configuration can be defined in the documentation. To create a variable on the tab, click <span style="font-weight: bold;">+Environment Variable</span> and fill in the service parameter template in the opened window.</p>
|
||||
<p style="text-align: justify; line-height: 1.20; margin: 7px 0 7px 0;"><img alt="configure-portable-service-3" width="685" height="305" style="margin:0;width:685px;height:305px;border:none" src="configure-portable-service-3.png"/></p>
|
||||
<p style="text-align: justify; line-height: 1.20; margin: 7px 0 16px 0;">Please note that when you add or edit environment variables, the microservice is restarted.</p>
|
||||
<p style="line-height: 1.20; margin: 7px 0 16px 0;"><span style="font-family: Inter;">Environment variables can be set during development, but you can also give the end user an opportunity to change them. To do that, you can create a template when filling out the value, specifying a property of the module. </span>To do this, you can use <span style="color: #0000ff;"><a href="extention-settings.html" class="topiclink">module settings</a></span> when creating a variable in a template.</p>
|
||||
<p style="line-height: 1.20; margin: 7px 0 16px 0;"><span style="font-family: Inter;">For example, there is a </span><span style="font-family: Inter; font-weight: bold;">ServiceTimeout</span><span style="font-family: Inter;"> property in the module settings. You can create an environment variable </span><span style="font-family: Inter; font-weight: bold;">RequestTimeout</span><span style="font-family: Inter;"> and specify </span><code><b>{$serviceTimeout}</b></code><span style="font-size: 13px;"> </span>in its template. Then users will change the value of the property in the module settings and at the same time set the value for the environment variable in the microservice.</p>
|
||||
<p style="text-align: justify; line-height: 1.20; margin: 7px 0 16px 0;">If module settings are used in the environment variables template, you can enable the <span style="font-weight: bold;">Restart when module settings are changed</span> option. In this case, when the parameter values on the main page of the module settings change, the service will be restarted, i.e., completely removed from the Kubernetes cluster and deployed again.</p>
|
||||
<h3 class="p_Heading3"><a id="liveness-tab" class="hmanchor"></a><span class="f_Heading3">Liveness tab</span></h3>
|
||||
<p style="line-height: 1.20; margin: 7px 0 16px 0;"><span style="font-family: Inter;">This option allows you to use a Kubernetes probe to automatically restart a microservice in case of failure. </span>The following options are available in the drop-down list: <span style="font-weight: bold;">Command</span>, <span style="font-weight: bold;">HTTP</span>, and <span style="font-weight: bold;">TCP</span>.<span style="font-family: Inter;"> Read its documentation before including Liveness probes and selecting their types.</span></p>
|
||||
<h3 class="p_Heading3"><a id="readiness-tab" class="hmanchor"></a><span class="f_Heading3">Readiness tab</span></h3>
|
||||
<p style="line-height: 1.20; margin: 7px 0 16px 0;"><span style="font-family: Inter;">This option allows you to use a Kubernetes probe to prevent the microservice from accepting requests before it is fully initialized. </span>The following options are available in the drop-down list: <span style="font-weight: bold;">Command</span>, <span style="font-weight: bold;">HTTP</span>, and <span style="font-weight: bold;">TCP</span>.<span style="font-family: Inter;"> Read its documentation before including Readiness probes and selecting their types.</span></p>
|
||||
<p style="line-height: 1.20; margin: 7px 0 16px 0;"><span style="font-family: Inter;">Please take your time to carefully configure </span>the parameters on the <span style="font-weight: bold;">Liveness</span> and <span style="font-weight: bold;">Readiness</span> tabs.<span style="font-family: Inter;"> If the settings are incorrect, and the Kubernetes response is invalid, the microservice will be considered inoperable and restarted no matter what its status actually is. We recommend avoiding probes if possible if you aren’t fully aware of why and how you need to use them and what the consequences are.</span></p>
|
||||
<p style="line-height: 1.20; margin: 7px 0 16px 0;">To finish configuring the added service, click <span style="font-weight: bold;">Save</span> in the editing window.</p>
|
||||
<p style="line-height: 1.20; margin: 7px 0 16px 0;">All created services will be displayed in the module settings, on the <span style="font-weight: bold;">Services</span> tab. To reopen the window of editing a service, click on its name in the list. To delete a service, select its checkbox and click the <span style="font-weight: bold;">Delete</span> button that appears in the right corner of the page.</p>
|
||||
<h2 class="p_Heading2"><span class="f_Heading2">Enable or disable a microservice</span></h2>
|
||||
<p style="line-height: 1.20; margin: 7px 0 16px 0;"><span style="font-family: Inter;">When a module is enabled, all the microservices added to it are started. When the module is disabled, the microservices will be stopped and deleted.</span></p>
|
||||
<p style="line-height: 1.20; margin: 7px 0 16px 0;"><span style="font-family: Inter;">If one microservice image is deployed from different modules within one company, there will be two different microservice instances.</span></p>
|
||||
<h2 class="p_Heading2"><span class="f_Heading2">Microservice monitor</span></h2>
|
||||
<p style="text-align: justify; line-height: 1.20; margin: 7px 0 16px 0;">When the module is enabled, the status of microservices added to it can be monitored on its page. To do this, the <span style="font-weight: bold;">Service Monitor</span> is displayed next to the module name.</p>
|
||||
<p style="text-align: justify; line-height: 1.20; margin: 7px 0 16px 0;"><img alt="configure-portable-service-4" width="787" height="220" style="margin:0;width:787px;height:220px;border:none" src="configure-portable-service-4.png"/></p>
|
||||
<p style="line-height: 1.28; margin: 0 0 11px 0;">By clicking on the button, you’ll see a list of <span style="font-family: Inter;">all the microservices set by portable services. The information includes data about the image that the container is deployed from and about the number and current status of the replicas. If the Kubernetes cluster can provide metrics, data about resource consumption will also be shown.</span></p>
|
||||
<h2 class="p_Heading2"><span class="f_Heading2">Access to microservices</span></h2>
|
||||
<h3 class="p_Heading3"><span class="f_Heading3">Scripts</span></h3>
|
||||
<p style="line-height: 1.20; margin: 7px 0 16px 0;"><span style="font-family: Inter;">To access microservices, you can use the API provided in scripts. It is available in server scripts and only within the module that the microservice belongs to, for example, in its widgets and business processes. Microservices cannot be accessed in client scripts. </span></p>
|
||||
<p style="line-height: 1.20; margin: 7px 0 16px 0;"><span style="font-family: Inter;">Services can be accessed using </span><code><b>Namespace.services</b></code><span style="font-family: Inter;">. If the module doesn’t contain portable services, this namespace will not appear among the autocomplete suggestions in the script.</span></p>
|
||||
<p style="line-height: 1.20; margin: 7px 0 16px 0;"><span style="font-family: Inter;">To access a microservice, use the </span><code><b>fetch()</b></code><span style="font-family: Inter;"> method.</span></p>
|
||||
<p style="line-height: 1.20; margin: 7px 0 16px 0;"><span style="font-family: Inter;">You can send a simple </span><code><b>GET</b></code><span style="font-family: Inter;"> request without additional parameters specifying a relative path to the microservice API as the main parameter.</span></p>
|
||||
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">const res = await Namespace.services.vap.fetch("/SayHello");</span><br />
|
||||
<span class="f_CodeExample">if (res.ok) {</span><br />
|
||||
<span class="f_CodeExample">const resText = await res.text();</span><br />
|
||||
<span class="f_CodeExample">}</span></p>
|
||||
<p class="p_Normal">Чтобы отправить другой тип запроса, указать параметры, задать заголовки и тело запроса, можно воспользоваться методом <code><b>fetch</b></code>, в качестве второго параметра которого передаётся <code><b>FetchRequest</b></code>.</p>
|
||||
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">const res = await Namespace.services.vap.fetch("/RememberMe", {</span><br />
|
||||
<span class="f_CodeExample"> method: 'POST',</span><br />
|
||||
<span class="f_CodeExample"> headers: {</span><br />
|
||||
<span class="f_CodeExample"> Authorization: 'myToken',</span><br />
|
||||
<span class="f_CodeExample"> },</span><br />
|
||||
<span class="f_CodeExample"> body: JSON.stringify({</span><br />
|
||||
<span class="f_CodeExample"> name: 'Ivan',</span><br />
|
||||
<span class="f_CodeExample"> age: 27,</span><br />
|
||||
<span class="f_CodeExample"> })</span><br />
|
||||
<span class="f_CodeExample"> } );</span></p>
|
||||
<p style="line-height: 1.28; margin: 0 0 11px 0;">Для проверки состояния микросервиса используется метод <code><b>status</b></code>. Результатом будет перечисление <code><b>ServiceStatus</b></code>, несущее информацию о текущем статусе.</p>
|
||||
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">const info = await Namespace.services.vap.status();</span></p>
|
||||
<h3 class="p_Heading3"><a id="communication-between-two-services" class="hmanchor"></a><span class="f_Heading3">Обмен данными между двумя переносимыми сервисами</span></h3>
|
||||
<p style="line-height: 1.28; margin: 0 0 11px 0;"><span style="font-size: 15px; font-family: Inter;">В поставках ELMA365 On‑Premises и SaaS Enterprise можно организовать взаимодействие между микросервисами внутри одного модуля. Путь доступа настраивается с помощью переменных окружения. </span></p>
|
||||
<p style="line-height: 1.28; margin: 0 0 11px 0;"><span style="font-size: 15px; font-family: Inter;">Подробнее читайте в статье </span><span style="font-size: 15px; font-family: Inter; color: #0563c1;"><a href="development-key-points.html#communication-between-services" class="topiclink">«Рекомендации по разработке микросервисов для переносимых сервисов»</a></span><span style="font-size: 15px; font-family: Inter;">.</span></p>
|
||||
<h2 class="p_Heading2"><a id="export-import" class="hmanchor"></a><span class="f_Heading2">Экспорт и импорт модуля с сервисом</span></h2>
|
||||
<p class="p_Normal">Экспорт и импорт модуля, имеющего переносимые сервисы, возможен только в случае, если <span style="font-weight: bold;">Переносимые сервисы </span>разблокированы.</p>
|
||||
<p style="line-height: 1.20; margin: 7px 0 16px 0;"><span style="font-family: Inter;">If you want to send a request of a different type, specify additional parameters, or set the request’s headers and body, use the </span><code><b>fetch()</b></code><span style="font-family: Inter;"> method and pass </span><code><b>FetchRequest</b></code><span style="font-family: Inter;"> as its second parameter:</span></p>
|
||||
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">const res = await Namespace.services.vap.fetch("/RememberMe", {</span><br />
|
||||
<span class="f_CodeExample"> method: 'POST',</span><br />
|
||||
<span class="f_CodeExample"> headers: {</span><br />
|
||||
<span class="f_CodeExample"> Authorization: 'myToken',</span><br />
|
||||
<span class="f_CodeExample"> },</span><br />
|
||||
<span class="f_CodeExample"> body: JSON.stringify({</span><br />
|
||||
<span class="f_CodeExample"> name: 'John',</span><br />
|
||||
<span class="f_CodeExample"> age: 27,</span><br />
|
||||
<span class="f_CodeExample"> })</span><br />
|
||||
<span class="f_CodeExample"> } );</span></p>
|
||||
<p style="line-height: 1.20; margin: 7px 0 16px 0;"><span style="font-family: Inter;">When writing scripts, you may need to check a microservice’s state. To do that, you can use the </span><code><b>status()</b></code><span style="font-family: Inter;"> method. It will return the </span><code><b>ServiceStatus</b></code><span style="font-family: Inter; font-weight: bold;"> </span><span style="font-family: Inter;">enum value with the information about the current status.</span></p>
|
||||
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">const info = await Namespace.services.vap.status();</span></p>
|
||||
<h3 class="p_Heading3"><span class="f_Heading3">Communication between two portable services</span></h3>
|
||||
<p style="line-height: 1.20; margin: 7px 0 16px 0;"><span style="font-family: Inter;">In BRIX On-Premises and SaaS Enterprise editions, you can arrange communication between microservices within a module. Configure the access address using the environment variables.</span></p>
|
||||
<p style="line-height: 1.20; margin: 7px 0 16px 0;"><span style="font-family: Inter;">Read more about it in the <a href="development-key-points.html#communication-between-services" class="topiclink">Guidelines for developing microservices for portable services</a> article.</span></p>
|
||||
<h2 class="p_Heading2"><span class="f_Heading2">Export and import</span></h2>
|
||||
<p style="line-height: 1.20; margin: 7px 0 16px 0;"><span style="font-family: Inter;">You can only export or import a module with portable services if </span><span style="font-family: Inter; font-weight: bold;">Portable services</span><span style="font-family: Inter;"> are unlocked.</span></p>
|
||||
|
||||
<div class="bottom-nav">
|
||||
|
||||
@ -260,7 +255,7 @@
|
||||
|
||||
</div>
|
||||
<!-- добавляет на страницу строку блок Была ли статья полезной? -->
|
||||
<div class="feedback-wrap"><div class="feedback" id="feedback"><span><b>Была ли статья полезной?</b></span><form action="" method="POST" class="feedback-form" id="feedback-form"><div class="feedback__popup feedback__popup-response" id="feedback__popup_thx">Спасибо за ваш отзыв!</div><div id="feedback-success-popup"><div class="wrap"><button type="button" class="feedback-popup-close">×</button><svg width="44" height="44" viewBox="0 0 44 44" fill="none" xmlns="http://www.w3.org/2000/svg"><g clip-path="url(#clip0_212_2187)"><path d="M22 0.6875C10.2294 0.6875 0.6875 10.2294 0.6875 22C0.6875 33.7706 10.2294 43.3125 22 43.3125C33.7706 43.3125 43.3125 33.7706 43.3125 22C43.3125 10.2294 33.7706 0.6875 22 0.6875ZM22 40.5625C11.8023 40.5625 3.4375 32.3078 3.4375 22C3.4375 11.8024 11.6922 3.4375 22 3.4375C32.1977 3.4375 40.5625 11.6922 40.5625 22C40.5625 32.1976 32.3078 40.5625 22 40.5625ZM34.1713 16.933L18.6613 32.3186C18.257 32.7197 17.604 32.7171 17.203 32.3128L9.82283 24.873C9.42176 24.4686 9.42434 23.8157 9.82867 23.4146L10.5609 22.6884C10.9652 22.2873 11.6181 22.2899 12.0192 22.6942L17.9468 28.6697L31.9926 14.7366C32.3969 14.3356 33.0498 14.3382 33.4509 14.7425L34.1772 15.4747C34.5783 15.879 34.5757 16.532 34.1713 16.933Z" fill="#27AE60"></path></g><defs><clipPath id="clip0_212_2187"><rect width="44" height="44" fill="white"></rect></clipPath></defs></svg><p>Ваш отзыв успешно отправлен!</p><span>Спасибо за обратную связь.</span></div></div><div class="feedback__popup" id="feedback__popup_why"><button type="button" class="feedback-popup-close">×</button><div class="feedback__popup-header">Уточните, почему:</div><input type="radio" name="category" id="bad_recommendation" value="bad_recommendation"><label for="bad_recommendation">Рекомендации не помогли</label><input type="radio" name="category" id="difficult_text" value="difficult_text"><label for="difficult_text">Текст трудно понять</label><input type="radio" name="category" id="no_answer" value="no_answer"><label for="no_answer">Нет ответа на мой вопрос</label><input type="radio" name="category" id="bad_header" value="bad_header"><label for="bad_header">Содержание статьи не соответствует заголовку</label><input type="radio" name="category" id="other_reason" value="other_reason"><label for="other_reason">Другая причина</label></div><div class="feedback__popup" id="feedback__popup-other"><button type="button" class="feedback-popup-close">×</button> <div class="feedback__popup-header">Расскажите, что вам не понравилось в статье:</div><textarea class="feedback__textarea" name="other" id=""></textarea><input type="submit" class="feedback__other-btn" value="Отправить"></div><div class="feedback-form__btn-group"><input type="radio" name="useful" id="feedback__useful_yes" value="true"><label for="feedback__useful_yes"><img src="like.svg"/><span class="feedback-form__btn-group_yes-btn">Да</span></label><input type="radio" name="useful" id="feedback__useful_no" value="false"><label for="feedback__useful_no"><img src="dislike.svg"/><span class="feedback-form__btn-group_no-btn">Нет</span></label></div><select name="category"><option disabled>Выберите вариант</option><option value="bad_recommendation" selected>Рекомендации не помогли</option><option value="difficult_text">Текст трудно понять</option><option value="no_answer">Нет ответа на мой вопрос</option><option value="bad_header">Содержание статьи не соответствует заголовку</option><option value="other_reason">Другая причина</option></select><input type="submit"></form></div></div>
|
||||
<div class="feedback" id="feedback"><div class="feedback-help"><span><b>Was this helpful?</b></span><form action="" method="POST" class="feedback-form" id="feedback-form"><div class="feedback__popup feedback__popup-response" id="feedback__popup_thx" style="display: none;">Thanks for your feedback!</div><div class="feedback__popup" id="feedback__popup_why" style="display: none;"><div class="feedback__popup-header">Please specify why:</div><input type="radio" name="category" id="bad_recommendation" value="bad_recommendation"><label for="bad_recommendation">Recommendations did not help me</label><input type="radio" name="category" id="difficult_text" value="difficult_text"><label for="difficult_text">Article is hard to understand</label><input type="radio" name="category" id="no_answer" value="no_answer"><label for="no_answer">Didn`t answer my question</label><input type="radio" name="category" id="bad_header" value="bad_header"><label for="bad_header">Content does not match the topic</label><input type="radio" name="category" id="other_reason" value="other_reason"><label for="other_reason">Other</label></div><div class="feedback__popup" id="feedback__popup-other" style="display: none;"><div class="feedback__popup-header">How we can improve it?</div><textarea class="feedback__textarea" name="other" id=""></textarea><input type="submit" class="feedback__other-btn" value="Submit"></div><div class="feedback-form__btn-group"><input type="radio" name="useful" id="feedback__useful_yes" value="true"><label for="feedback__useful_yes"><img src="like.svg" class="small-img" alt="like"><spanclass="feedback-form__btn-group_yes-btn">Yes</spanclass="feedback-form__btn-group_yes-btn"></label><input type="radio" name="useful" id="feedback__useful_no" value="false"><label for="feedback__useful_no"><img src="dislike.svg" class="small-img" alt="dislike"><spanclass="feedback-form__btn-group_no-btn">No</spanclass="feedback-form__btn-group_no-btn"></label></div><select name="category"><option disabled="">Please specify why</option><option value="bad_recommendation" selected="">Recommendations did not help me</option><option value="difficult_text">Article is hard to understand</option><option value="no_answer">Didn`t answer my question</option><option value="bad_header">Content does not match the topic</option><option value="other_reason">Other</option></select><input type="submit"></form></div><div class="found_typo"><p style="margin: 0px; margin-top: 16px !important;"><span><b>Found a typo?</b></span> Select it and press <i>Ctrl+Enter</i> to send us feedback</p></div></div>
|
||||
|
||||
</section>
|
||||
</div>
|
||||
@ -268,7 +263,7 @@
|
||||
<input type="checkbox" />
|
||||
<div class="article__arrow"></div>
|
||||
<div class="table-of-contents elma365-right" id="toc2Content">
|
||||
<h3 class="h3-toc">В этой статье</h3>
|
||||
<h3 class="h3-toc">In this topic</h3>
|
||||
<nav id="toc2"></nav>
|
||||
</div>
|
||||
</aside>
|
||||
@ -279,63 +274,30 @@
|
||||
<div class="footer-container">
|
||||
<div class="footer-mobile">
|
||||
|
||||
<ul class="footer-mobile__list"><li><a href="https://api.elma365.com/ru/" target="_blank">API</a></li><li><a href="https://tssdk.elma365.com/" target="_blank">TS SDK</a></li><li><a href="https://community.elma365.com/" target="_blank">Community</a></li><li><a href="https://elma-academy.com/ru/elma365" target="_blank">Академия</a></li></ul><ul class="footer-mobile__list"><li><a href="https://elma365.com/ru/help/platform/get-trial.html">Платформа</a></li><li><a href="https://elma365.com/ru/help/ecm/ecm-functions.html">ECM</a></li><li><a href="https://elma365.com/ru/help/service/service-functions.html">Service</a></li><li><a href="https://elma365.com/ru/help/projects/projects-functions.html">Проекты</a></li></ul>
|
||||
<ul class="footer-mobile__list"><li><a href="https://brix365.com/en/" target="_blank">BRIX</a></li><li><a href="https://tssdk.brix365.com/en/latest/" target="_blank">SDK</a></li><li><a href="https://api.brix365.com/en/" target="_blank">API</a></li></ul><ul class="footer-mobile__list"><li><a href="https://brix365.com/en/help/platform/get-trial.html">Platform</a></li><li><a href="https://brix365.com/en/help/ecm/ecm-functions.html">ECM</a></li><li><a href="https://brix365.com/en/help/service/service-functions.html">Service</a></li><li><a href="https://brix365.com/en/help/projects/projects-functions.html">Projects</a></li></ul>
|
||||
|
||||
|
||||
</div>
|
||||
<div class="container">
|
||||
<div class="footer-wrap">
|
||||
|
||||
<div><span class="mobile-question-popup">Отправить фидбэк</span><form method="POST" action class="question__popup question-xs" id="question__popup"><div class="question-wrap"><span class="close"></span><span class="title">Задать вопрос</span><label for="help_question" style="display: none;"></label><textarea name="help_question" id="help_question"></textarea><input type="submit" value="Отправить"></div></form><div class="hidden fade-in question-success-xs">Ваш фидбэк отправлен.</div></div>
|
||||
|
||||
<div class="footer-flex-b">
|
||||
<div class="footer-top">
|
||||
<span class="footer-copy">© 2025
|
||||
ELMA365
|
||||
|
||||
|
||||
</span>
|
||||
|
||||
<a href="https://navigator.sk.ru/orn/1122971" target="_blank">
|
||||
<img src="sk-resident.svg" alt="sk icon" class="footer-img" width="117" height="34">
|
||||
</a>
|
||||
|
||||
</div>
|
||||
<div class="footer-line">
|
||||
|
||||
<div class="footer-line-copy">
|
||||
<span class="footer-copy">© 2025
|
||||
ELMA365
|
||||
|
||||
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<ul class="footer-list">
|
||||
|
||||
<li class="footer-item"><a href="https://elma365.com/ru/" target="_blank" class="footer-link" style="color: #0D4A75;"><img src="browse.svg" alt="browse icon" class="footer-img">elma365.com</a></li><li class="footer-item"><a href="https://www.youtube.com/user/ELMABPM" target="_blank" class="footer-link"><img src="yt.svg" alt="youtube icon" class="footer-img"></a></li><li class="footer-item"><a href="https://vk.com/elma_bpm" target="_blank" class="footer-link"><img src="vk.svg" alt="vk icon" class="footer-img"></a></li><li class="footer-item"><a href="https://t.me/elmaday" target="_blank" class="footer-link"><img src="tg.svg" alt="telegram icon" class="footer-img"></a></li><li class="footer-item"><a href="https://dzen.ru/elma" target="_blank" class="footer-link"><img src="dzen.svg" alt="dzen icon" class="footer-img"></a></li>
|
||||
|
||||
|
||||
<li class="footer-item">
|
||||
<a href="https://navigator.sk.ru/orn/1122971" target="_blank">
|
||||
<img src="sk-resident.svg" alt="sk icon" class="footer-img" width="117" height="34">
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="footer-wrap">
|
||||
|
||||
<div><span class="mobile-question-popup">Send feedback</span><form method="POST" action class="question__popup question-xs" id="question__popup"><div class="question-wrap"><span class="close"></span><span class="title">Ask a question</span><label for="help_question" style="display: none;"></label><textarea name="help_question" id="help_question"></textarea><input type="submit" value="Send"></div></form><div class="hidden fade-in question-success-xs">Sent</div></div>
|
||||
|
||||
<div class="footer-flex-b">
|
||||
<span class="footer-copy">© 2025 BRIX</span>
|
||||
<ul class="footer-list">
|
||||
|
||||
<li class="footer-item">
|
||||
<a href="#" class="arrow-top" style="display: block;"></a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<a href="#" class="arrow-top"></a>
|
||||
</div>
|
||||
|
||||
</footer>
|
||||
<!-- <script type="text/javascript" src="jquery1.min.js"></script>-->
|
||||
<iframe name="hmnavigation" style="display:none!important"></iframe>
|
||||
<!--<script src="./jquery-ui.js"></script> -->
|
||||
<script src="./jquery-ui.min.js"></script>
|
||||
<script src="./jquery-ui.js"></script>
|
||||
<!--script src="//cdn.jsdelivr.net/npm/featherlight@1.7.14/release/featherlight.min.js" type="text/javascript" charset="utf-8"></script-->
|
||||
<script src="./jquery.tocify.min.js"></script>
|
||||
<script src="./TypoReporter.min.js"></script>
|
||||
|
Reference in New Issue
Block a user