流量分配器 ( https://docs.jelastic.com/traffic-distributor ) 是一个很酷的功能,它可以为您的应用程序添加负载平衡并启用蓝/绿部署。但是,似乎没有 API 来控制流量分配器,因此不可能自动推出新版本。
有没有办法做到这一点?
流量分配器 ( https://docs.jelastic.com/traffic-distributor ) 是一个很酷的功能,它可以为您的应用程序添加负载平衡并启用蓝/绿部署。但是,似乎没有 API 来控制流量分配器,因此不可能自动推出新版本。
有没有办法做到这一点?
可以通过API创建和控制 Traffic Distributor 。
让我们解释一下流程...
首先,您应该登录平台并获取会话。这可以通过下一个 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}"
接下来,您可以使用此请求创建 Traffic Distributor:
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] - 仪表板中环境的可见名称。
可以在 JSON 中指定 Traffic Distributor 的必要设置:
您可以指定下一个可能的值:round-robin、sticky-sessions或故障转移
例如: 0 - 所有请求将被路由到 {environment_2}, 100 - 所有请求将被路由到 {environment_1}, 50 - 所有请求将在环境之间平均平衡。
执行此方法后 - Traffic Distributor 将出现在 Jelastic Dashboard 中。
请执行下一个 API 请求以从响应中获取“ uniqueName ”值(在Addons部分内):
https://app.{Platform_domain}/1.0/environment/control/rest/getenvinfo?envname=[env_name]&session=[your_session]
, 其中[env_name] - 使用 Traffic Distributor 插件创建的环境的名称。
现在您可以通过下一个 API 控制创建的 Traffic Distributor 的设置:
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 请求完全相同。