首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过API控制J弹性流量分配器

如何通过API控制J弹性流量分配器
EN

Stack Overflow用户
提问于 2017-08-29 20:00:49
回答 1查看 183关注 0票数 2

流量分配程序(https://docs.jelastic.com/traffic-distributor)是一个很酷的特性,它为您的应用程序添加了负载平衡,并启用了蓝色/绿色部署。但是,似乎没有API来控制流量分发服务器,因此不可能自动发布新版本。

有办法这样做吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-30 11:24:38

有可能通过API接口创建和控制流量分发服务器。

让我们解释一下流程..。

首先,您应该登录到平台并获取您的会话。这可以通过下一个API请求来完成:

代码语言:javascript
复制
https://app.{platform_domain}/1.0/users/authentication/rest/signin/login={your_email}&password={your_password}

如果您使用的是J弹platform v5.1+,您应该以POST的形式执行上述请求。

例如,您可以使用curl来完成此操作:

代码语言:javascript
复制
curl 'https://app.{platform_domain}/1.0/users/authentication/rest/signin' -d "login={your_email}&password={your_password}"

接下来,可以使用此请求创建流量分发服务器:

代码语言:javascript
复制
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 -仪表板中环境的可见名称。
  • your_session --您的会话,可以从先前请求的响应中提取。

可以在JSON中指定流量分发服务器的必要设置:

  • extip -启用流量分发服务器的外部IP (极力推荐! )。
  • balancerCount -计算流量分配器内的平衡器。(默认情况下= 1)
  • routingMethod -定义了流量路由的必要方法。

您可以指定下一个可能的值:round-robinsticky-sessions故障转移

  • range -定义将被路由到第一个环境的流量百分比。

例如: -所有请求都将被路由到{environment_2},100 -所有请求都将被路由到{environment_1},50 -所有请求将在环境之间均衡。

  • {environment_1} - URL到第一个环境,如env-XXXXXXX.{platform_domain}
  • {environment_2} - URL到第二个环境,如env-XXXXXXX.{platform_domain}

执行此方法后,流量分发服务器将出现在J弹性仪表板中。

请执行下一个API请求,从响应中获取"uniqueName“值(在加载项部分中):

代码语言:javascript
复制
https://app.{Platform_domain}/1.0/environment/control/rest/getenvinfo?envname=[env_name]&session=[your_session]

,其中env_name -创建的环境的名称和流量分发服务器的加载项。

现在,您可以在下一个API之前控制创建的流量分发服务器的设置:

代码语言:javascript
复制
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请求的设置完全相同。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45947451

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档