流量分配程序(https://docs.jelastic.com/traffic-distributor)是一个很酷的特性,它为您的应用程序添加了负载平衡,并启用了蓝色/绿色部署。但是,似乎没有API来控制流量分发服务器,因此不可能自动发布新版本。
有办法这样做吗?
发布于 2017-08-30 11:24:38
有可能通过API接口创建和控制流量分发服务器。
让我们解释一下流程..。
首先,您应该登录到平台并获取您的会话。这可以通过下一个API请求来完成:
https://app.{platform_domain}/1.0/users/authentication/rest/signin/login={your_email}&password={your_password}如果您使用的是J弹platform v5.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}"},其中
可以在JSON中指定流量分发服务器的必要设置:
您可以指定下一个可能的值:round-robin,sticky-sessions或故障转移
例如: -所有请求都将被路由到{environment_2},100 -所有请求都将被路由到{environment_1},50 -所有请求将在环境之间均衡。
执行此方法后,流量分发服务器将出现在J弹性仪表板中。
请执行下一个API请求,从响应中获取"uniqueName“值(在加载项部分中):
https://app.{Platform_domain}/1.0/environment/control/rest/getenvinfo?envname=[env_name]&session=[your_session],其中env_name -创建的环境的名称和流量分发服务器的加载项。
现在,您可以在下一个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请求的设置完全相同。
https://stackoverflow.com/questions/45947451
复制相似问题