【问题标题】:How to control Jelastic Traffic Distributor via API如何通过 API 控制 Jelastic Traffic Distributor
【发布时间】:2018-02-07 09:40:08
【问题描述】:

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

有没有办法做到这一点?

【问题讨论】:

    标签: load-balancing jelastic blue-green-deployment


    【解决方案1】:

    可以通过API 创建和控制流量分配器。

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

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

    https://app.{platform_domain}/1.0/users/authentication/rest/signin/login={your_email}&password={your_password}
    

    如果您使用 Jelastic 平台 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}"}
    

    ,在哪里

    • [env_name] - 环境的名称。

    • [disp_env_name] - 仪表板中环境的可见名称。

    • [your_session] - 您的会话,可以从上一个请求的响应中获取。

    Traffic Distributor 的必要设置可以在 JSON 中指定:

    • extip - 为 Traffic Distributor 启用外部 IP(强烈推荐!)。
    • balancerCount - 流量分配器内的平衡器计数。 (默认 = 1
    • routingMethod - 定义流量路由的必要方法。

    您可以指定下一个可能的值:round-robinsticky-sessionsfailover

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

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

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

    执行此方法后 - 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&params={"extip":1,"balancerCount":1,"routingMethod":"sticky-sessions","range":50,"backend1":"{environment_1}","backend2":"{environment_2}"}
    

    ,在哪里

    [app_unique_name] - 来自上一个请求的响应的值“uniqueName”。

    JSON 中的设置与 InstallApp API 请求的设置完全相同。

    【讨论】:

    • 太棒了!这是官方文档中提到的还是您正在更新?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-15
    • 1970-01-01
    • 2022-01-23
    • 1970-01-01
    • 2010-10-12
    相关资源
    最近更新 更多