Как управлять Jelastic Traffic Distributor через API
Распределитель трафика ( https://docs.jelastic.com/traffic-distributor) - это классная функция, которая добавляет балансировку нагрузки в ваше приложение и позволяет развертывать Blue / Green. Однако, похоже, что нет API для управления распределителем трафика, поэтому невозможно автоматизировать развертывание новых выпусков.
Есть ли способ сделать это?
1 ответ
Существует возможность создавать и контролировать Распределитель трафика через API.
Позвольте нам объяснить поток...
Сначала вы должны войти в платформу и получить сеанс. Это можно сделать следующим запросом API:
https://app.{platform_domain}/1.0/users/authentication/rest/signin/login={your_email}&password={your_password}
Если вы используете платформу Jelastic v 5.1+, вы должны выполнить упомянутый запрос как POST.
Например, вы можете сделать это с помощью curl:
curl 'https://app.{platform_domain}/1.0/users/authentication/rest/signin' -d "login={your_email}&password={your_password}"
Далее вы можете создать Распределитель трафика, используя этот запрос:
http://appstore.{platform_domain}/InstallApp?envName=[env_name]&session=[your_session]&jps=traffic-distributor&displayName=[disp_env_name]&settings={"extip":true,"balancerCount":1,"routingMethod":"round-robin","range":50,"backend1":"{environment_1}","backend2":"{environment_2}"}
, где
[env_name] - название среды.
[disp_env_name] - видимое имя среды в Dashboard.
- [your_session] - ваша сессия, которую можно взять из ответа на предыдущий запрос.
Необходимые настройки Распределителя трафика могут быть указаны внутри JSON:
- extip - включает внешний IP-адрес для распределителя трафика (настоятельно рекомендуется!).
- balancerCount - количество балансировщиков внутри Распределителя трафика. (по умолчанию = 1)
- routingMethod - определяет необходимый метод маршрутизации трафика.
Вы можете указать следующие возможные значения: round-robin, sticky-session или failover
- range - определить процент трафика, который будет направляться в первую среду.
Например: 0 - все запросы будут направлены в {environment_2}, 100 - все запросы будут направлены в {environment_1}, 50 - все запросы будут одинаково сбалансированы между средами.
- {environment_1} - URL-адрес первой среды, например env-XXXXXXX.{platform_domain}
- {environment_2} - URL-адрес второй среды, например env-XXXXXXX.{platform_domain}
После выполнения этого метода - Распределитель трафика появится в Jelastic Dashboard.
Выполните следующий запрос API, чтобы получить значение " uniqueName " из ответа (в разделе " Дополнения "):
https://app.{Platform_domain}/1.0/environment/control/rest/getenvinfo?envname=[env_name]&session=[your_session]
где [env_name] - имя созданной среды с надстройкой Traffic Distributor.
Теперь вы можете управлять настройками созданного Распределителя трафика с помощью следующего API:
https://appstore.{Platform_domain}/ExecuteAppAction?session=[your_session]&appUniqueName=[app_unique_name]&action=configure¶ms={"extip":1,"balancerCount":1,"routingMethod":"sticky-sessions","range":50,"backend1":"{environment_1}","backend2":"{environment_2}"}
, где
[app_unique_name] - значение " uniqueName " из ответа на предыдущий запрос.
Настройки внутри JSON точно такие же, как и для запроса InstallApp API.