Как управлять 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&params={"extip":1,"balancerCount":1,"routingMethod":"sticky-sessions","range":50,"backend1":"{environment_1}","backend2":"{environment_2}"}

, где

[app_unique_name] - значение " uniqueName " из ответа на предыдущий запрос.

Настройки внутри JSON точно такие же, как и для запроса InstallApp API.

Другие вопросы по тегам