负载均衡BLB

    应用型blb实例

    应用型blb实例针对用户复杂应用部署架构,特别是大型网站架构。使用基于策略的网络管理框架构建,实现业务驱动的流量负载均衡。

    self即app_blb_client;具体各个参数含义请参考blb官方文档,api参考下的应用型blb接口

    创建应用型blb实例

    描述:

    • 创建一个LoadBalancer,返回分配的服务地址及实例ID。
    • 付费方式为后付费。
    • 需要实名认证,若未通过实名认证可以前往百度开放云官网控制台中的安全认证下的实名认证中进行认证。

    使用以下代码可以创建应用型blb实例:

        @required(vpc_id=(bytes, str),
                  subnet_id=(bytes, str))
        def create_app_loadbalancer(self, vpc_id, subnet_id, name=None,
                                    desc=None, client_token=None, config=None): 

    使用示例如下:

        app_blb_client.create_app_loadbalancer(vpc_id="vpc-jupcnrwxqgvf", subnet_id="sbn-p64udgxpymae", name="blb_bj")

    更新应用型blb实例

    描述:

    • 更新一个LoadBalancer的配置信息。

    使用以下代码可以更新应用型blb实例:

        @required(blb_id=(bytes, str))
        def update_app_loadbalancer(self, blb_id, name=None, desc=None,
                                    client_token=None, config=None):

    使用示例如下:

        app_blb_client.update_app_loadbalancer(blb_id="lb-f27a5689", name="blb_bd")

    查询应用型blb实例列表

    描述:

    • 查询用户账户下所有LoadBalancer的信息
    • 支持按LoadBalancer的id、name、address进行查询,匹配规则支持部分包含(不支持正则)
    • 支持查找绑定指定BCC的LoadBalancer,通过bccId参数指定
    • 返回结果是多重查询条件的交集
    • 结果支持marker分页,分页大小默认为1000,可通过maxKeys参数指定

    使用以下代码可以查询应用型blb实例列表:

        def describe_app_loadbalancers(self, address=None, name=None, blb_id=None,
                                       bcc_id=None, marker=None, max_keys=None,
                                       config=None):

    使用示例如下:

        app_blb_client.describe_app_loadbalancers()

    查询应用型blb实例详情

    描述:

    • 按id查询用户账户下所有LoadBalancer的详细信息
    • 包含LoadBalancer所有的监听器端口信息

    使用以下代码可以查询应用型blb实例详情:

        @required(blb_id=(bytes, str))
        def describe_app_loadbalancer_detail(self, blb_id, config=None):

    使用示例如下:

        app_blb_client.describe_app_loadbalancer_detail(blb_id="lb-f27a5689")

    删除应用型blb实例

    描述:

    • 释放指定LoadBalancer,被释放的LoadBalancer无法找回

    使用以下代码可以删除应用型blb实例:

        @required(blb_id=(bytes, str))
        def delete_app_loadbalancer(self, blb_id, client_token=None, config=None):

    使用示例如下:

        app_blb_client.delete_app_loadbalancer(blb_id="lb-f27a5689")

    创建应用型blb httpListener实例

    描述:

    • 在指定LoadBalancer下,创建一个基于HTTP协议的应用型监听器,监听一个前端端口,将发往该端口的所有HTTP请求,根据策略转发到后端服务器监听的后端端口上

    使用以下代码可以创建应用型blb httpListener实例:

        @required(blb_id=(bytes, str), listener_port=int,
                  scheduler=(bytes, str))
        def create_app_http_listener(self, blb_id, listener_port,
                                     scheduler, keep_session=None,
                                     keep_session_type=None,
                                     keep_session_timeout=None,
                                     keep_session_cookie_name=None,
                                     x_forward_for=None,
                                     server_timeout=None,
                                     redirect_port=None,
                                     client_token=None,
                                     config=None):

    使用示例如下:

        app_blb_client.create_app_http_listener(blb_id="lb-f27a5689", listener_port=80, scheduler="RoundRobin")

    创建应用型blb httpsListener实例

    描述:

    • 在指定LoadBalancer下,创建一个基于HTTPS协议的应用型监听器,监听一个前端端口,将发往该端口的所有HTTPS请求,先通过SSL卸载转换为HTTP请求后,再根据策略转发到后端服务器监听的后端端口上

    使用以下代码可以创建应用型blb httpsListener实例:

        @required(blb_id=(bytes, str), listener_port=int,
                  scheduler=(bytes, str), cert_ids=list)
        def create_app_https_listener(self, blb_id, listener_port,
                                      scheduler, cert_ids,
                                      keep_session=None,
                                      keep_session_type=None,
                                      keep_session_timeout=None,
                                      keep_session_cookie_name=None,
                                      x_forward_for=None, server_timeout=None,
                                      ie6_compatible=None, encryption_type=None,
                                      encryption_protocols=None,
                                      dual_auth=None, client_certIds=None,
                                      client_token=None, config=None):

    使用示例如下:

        app_blb_client.create_app_https_listener(blb_id="lb-f27a5689", listener_port=443, scheduler="RoundRobin", cert_ids=["cert-gs8bktrm7drp"])

    创建应用型blb tcpListener实例

    描述:

    • 在指定LoadBalancer下,创建一个基于TCP协议的应用型blb监听器,监听一个前端端口,将发往该端口的所有TCP流量,根据策略进行转发。

    使用以下代码可以创建应用型blb tcpListener实例:

        @required(blb_id=(bytes, str),
                  listener_port=int,
                  scheduler=(bytes, str))
        def create_app_tcp_listener(self, blb_id, listener_port,
                                    scheduler, client_token=None,
                                    config=None):

    使用示例如下:

        app_blb_client.create_app_tcp_listener(blb_id="lb-f27a5689", listener_port=80, scheduler="RoundRobin")

    创建应用型blb udpListener实例

    描述:

    • 在指定LoadBalancer下,创建一个基于UDP协议的应用型监听器,监听一个前端端口,将发往该端口的所有UDP流量,根据策略进行转发。

    使用以下代码可以创建应用型blb udpListener实例:

        @required(blb_id=(bytes, str),
                  listener_port=int,
                  scheduler=(bytes, str))
        def create_app_udp_listener(self, blb_id, listener_port,
                                    scheduler, client_token=None,
                                    config=None):

    使用示例如下:

        app_blb_client.create_app_udp_listener(blb_id="lb-f27a5689", listener_port=53, scheduler="RoundRobin")

    创建应用型blb sslListener实例

    描述:

    • 在指定LoadBalancer下,创建一个基于SSL协议的应用型blb监听器,监听一个前端端口,将发往该端口的所有SSL流量,根据策略进行转发。

    使用以下代码可以创建应用型blb sslListener实例:

        @required(blb_id=(bytes, str), listener_port=int,
                  scheduler=(bytes, str), cert_ids=list)
        def create_app_ssl_listener(self, blb_id, listener_port,
                                    scheduler, cert_ids,
                                    ie6_compatible=None,
                                    encryption_type=None,
                                    encryption_protocols=None,
                                    dual_auth=None, client_certIds=None,
                                    client_token=None, config=None):

    使用示例如下:

        app_blb_client.create_app_ssl_listener(blb_id="lb-f27a5689", listener_port=443, scheduler="RoundRobin", cert_ids=["cert-gs8bktrm7drp"])

    更新应用型blb httpListener实例

    描述:

    • 更新指定LoadBalancer下的HTTP监听器参数,所有请求参数中指定的域都会被更新,未指定的域保持不变,监听器通过端口指定

    使用以下代码可以更新应用型blb httpListener实例:

        @required(blb_id=(bytes, str),
                  listener_port=int)
        def update_app_http_listener(self, blb_id, listener_port,
                                     scheduler=None, keep_session=None,
                                     keep_session_type=None,
                                     keep_session_timeout=None,
                                     keep_session_cookie_name=None,
                                     x_forward_for=None,
                                     server_timeout=None,
                                     redirect_port=None,
                                     client_token=None,
                                     config=None):

    使用示例如下:

        app_blb_client.update_app_http_listener(blb_id="lb-f27a5689", listener_port=80, scheduler="LeastConnection")

    更新应用型blb httpsListener实例

    描述:

    • 更新指定LoadBalancer下的HTTPS监听器参数,所有请求参数中指定的域都会被更新,未指定的域保持不变,监听器通过端口指定。

    使用以下代码可以更新应用型blb httpsListener实例:

        @required(blb_id=(bytes, str), listener_port=int)
        def update_app_https_listener(self, blb_id, listener_port,
                                      scheduler=None,
                                      keep_session=None,
                                      keep_session_type=None,
                                      keep_session_timeout=None,
                                      keep_session_cookie_name=None,
                                      x_forward_for=None,
                                      server_timeout=None,
                                      cert_ids=None,
                                      ie6_compatible=None,
                                      encryption_type=None,
                                      encryption_protocols=None,
                                      dual_auth=None,
                                      client_certIds=None,
                                      client_token=None,
                                      config=None):

    使用示例如下:

        app_blb_client.update_app_https_listener(blb_id="lb-f27a5689", listener_port=443, scheduler="LeastConnection")

    更新应用型blb tcpListener实例

    描述:

    • 更新指定LoadBalancer下的TCP监听器参数,所有请求参数中指定的域都会被更新,未指定的域保持不变,监听器通过端口指定。

    使用以下代码可以更新应用型blb tcpListener实例:

        @required(blb_id=(bytes, str),
                  listener_port=int)
        def update_app_tcp_listener(self, blb_id, listener_port,
                                    scheduler=None,
                                    client_token=None,
                                    config=None):

    使用示例如下:

        app_blb_client.update_app_tcp_listener(blb_id="lb-f27a5689", listener_port=80, scheduler="LeastConnection")

    更新应用型blb udpListener实例

    描述:

    • 更新指定LoadBalancer下的UDP监听器参数,所有请求参数中指定的域都会被更新,未指定的域保持不变,监听器通过端口指定。

    使用以下代码可以更新应用型blb udpListener实例:

        @required(blb_id=(bytes, str),
                  listener_port=int)
        def update_app_udp_listener(self, blb_id, listener_port,
                                    scheduler=None, client_token=None,
                                    config=None):

    使用示例如下:

        app_blb_client.update_app_udp_listener(blb_id="lb-f27a5689", listener_port=53, scheduler="LeastConnection")

    更新应用型blb sslListener实例

    描述:

    • 更新指定LoadBalancer下的SSL监听器参数,所有请求参数中指定的域都会被更新,未指定的域保持不变,监听器通过端口指定。

    使用以下代码可以更新应用型blb sslListener实例:

        @required(blb_id=(bytes, str), listener_port=int)
        def update_app_ssl_listener(self, blb_id, listener_port,
                                    scheduler=None,
                                    cert_ids=None,
                                    ie6_compatible=None,
                                    encryption_type=None,
                                    encryption_protocols=None,
                                    dual_auth=None,
                                    client_certIds=None,
                                    client_token=None,
                                    config=None):

    使用示例如下:

        app_blb_client.update_app_ssl_listener(blb_id="lb-f27a5689", listener_port=443, scheduler="LeastConnection")

    查询应用型blb httpListener实例

    描述:

    • 查询指定LoadBalancer下所有HTTP监听器的信息
    • 支持按监听器端口进行匹配查询
    • 结果支持marker分页,分页大小默认为1000,可通过maxKeys参数指定

    使用以下代码可以查询应用型blb httpListener实例:

        @required(blb_id=(bytes, str))
        def describe_app_http_listener(self, blb_id, listener_port=None,
                                       marker=None, max_keys=None,
                                       config=None):

    使用示例如下:

        app_blb_client.describe_app_http_listener(blb_id="lb-f27a5689")

    查询应用型blb httpsListener实例

    描述:

    • 查询指定LoadBalancer下所有HTTPS监听器的信息
    • 支持按监听器端口进行匹配查询
    • 结果支持marker分页,分页大小默认为1000,可通过maxKeys参数指定

    使用以下代码可以查询应用型blb httpsListener实例:

        @required(blb_id=(bytes, str))
        def describe_app_https_listener(self, blb_id, listener_port=None,
                                        marker=None, max_keys=None,
                                        config=None): 

    使用示例如下:

        app_blb_client.describe_app_https_listener(blb_id="lb-f27a5689")

    查询应用型blb tcpListener实例

    描述:
    • 查询指定LoadBalancer下所有TCP监听器的信息
    • 支持按监听器端口进行匹配查询
    • 结果支持marker分页,分页大小默认为1000,可通过maxKeys参数指定

    使用以下代码可以查询应用型blb tcpListener实例:

        @required(blb_id=(bytes, str))
        def describe_app_tcp_listener(self, blb_id, listener_port=None,
                                      marker=None, max_keys=None,
                                      config=None):

    使用示例如下:

        app_blb_client.describe_app_tcp_listener(blb_id="lb-f27a5689")

    查询应用型blb udpListener实例

    描述:
    • 查询指定LoadBalancer下所有UDP监听器的信息
    • 支持按监听器端口进行匹配查询
    • 结果支持marker分页,分页大小默认为1000,可通过maxKeys参数指定

    使用以下代码可以查询应用型blb udpListener实例:

        @required(blb_id=(bytes, str))
        def describe_app_udp_listener(self, blb_id, listener_port=None,
                                      marker=None, max_keys=None,
                                      config=None):

    使用示例如下:

        app_blb_client.describe_app_udp_listener(blb_id="lb-f27a5689")

    查询应用型blb sslListener实例

    描述:
    • 查询指定LoadBalancer下所有SSL监听器的信息
    • 支持按监听器端口进行匹配查询
    • 结果支持marker分页,分页大小默认为1000,可通过maxKeys参数指定

    使用以下代码可以查询应用型blb sslListener实例:

        @required(blb_id=(bytes, str))
        def describe_app_ssl_listener(self, blb_id, listener_port=None,
                                  marker=None, max_keys=None, config=None):

    使用示例如下:

        app_blb_client.describe_app_ssl_listener(blb_id="lb-f27a5689")

    删除应用型blb监听器实例

    描述:

    • 释放指定LoadBalancer下的监听器,监听器通过监听端口来指定
    • 支持批量释放

    使用以下代码可以删除应用型blb监听器实例:

        @required(blb_id=(bytes, str),
                  portList=list)
        def delete_app_listeners(self, blb_id, portList,
                                 client_token=None,
                                 config=None):

    使用示例如下:

        app_blb_client.delete_app_listeners(blb_id="lb-f27a5689", portList=[80])

    创建应用型blb策略

    描述:

    • 在指定应用型BLB监听器端口下创建策略

    使用以下代码可以创建应用型blb策略:

        @required(blb_id=(bytes, str),
                  listener_port=int,
                  app_policy_vos=list)
        def create_policys(self, blb_id, listener_port,
                           app_policy_vos, client_token=None,
                           config=None):

    使用示例如下:

        appPolicyVos = [
            {
                "appServerGroupId": "sg-bfd2e3c8",
                "backendPort": 80,
                "priority": 1,
                "ruleList": [
                    {
                        "key": "host",
                        "value": "baidu.com"
                    }
                ]
            }
        ]
        app_blb_client.create_policys(blb_id="lb-f27a5689", listener_port=80, app_policy_vos=appPolicyVos)

    查询应用型blb策略

    描述:

    • 查询LoadBalancer对应端口下所有策略信息
    • 支持按监听器端口进行匹配查询
    • 结果支持marker分页,分页大小默认为1000,可通过maxKeys参数指定

    使用以下代码可以查询应用型blb策略:

        @required(blb_id=(bytes, str),
                  listener_port=int)
        def describe_policys(self, blb_id, listener_port,
                             marker=None, max_keys=None,
                             config=None):

    使用示例如下:

        app_blb_client.describe_policys(blb_id="lb-f27a5689", listener_port=80)

    删除应用型blb策略

    描述:

    • 批量删除对应BLB端口下的策略

    使用以下代码可以删除应用型blb策略:

        @required(blb_id=(bytes, str),
                  listener_port=int,
                  policys_list=list)
        def delete_policys(self, blb_id, listener_port,
                             policys_list,
                             client_token=None, config=None):

    使用示例如下:

        app_blb_client.delete_policys(blb_id="lb-f27a5689", listener_port=80, policys_list=["policy-d46a1b0f"])

    创建应用型blb服务器组

    描述:

    • 在指定应用型BLB下,创建一个服务器组,用来绑定后端服务器,以及为监听器开放相应的端口

    使用以下代码可以创建应用型blb服务器组:

        @required(blb_id=(bytes, str))
        def create_app_server_group(self, blb_id,
                                    name=None,
                                    desc=None,
                                    backend_server_list=None,
                                    client_token=None,
                                    config=None):

    使用示例如下:

        app_blb_client.create_app_server_group(blb_id="lb-f27a5689", name="blb_sg_bj")

    更新应用型blb服务器组

    描述:

    • 更新指定LoadBalancer下的TCP监听器参数,所有请求参数中指定的域都会被更新,未指定的域保持不变,监听器通过端口指定。

    使用以下代码可以更新应用型blb服务器组:

        @required(blb_id=(bytes, str),
                  sg_id=(bytes, str))
        def update_app_server_group(self, blb_id, sg_id,
                                    name=None,
                                    desc=None,
                                    client_token=None,
                                    config=None):

    使用示例如下:

        app_blb_client.update_app_server_group(blb_id="lb-f27a5689", sg_id="sg-60fd478d", name="blb_sg_bd")

    查询应用型blb服务器组

    描述:

    • 查询指定LoadBalancer下所有服务器组的信息
    • 结果支持marker分页,分页大小默认为1000,可通过maxKeys参数指定

    使用以下代码可以查询应用型blb服务器组:

        @required(blb_id=(bytes, str))
        def describe_app_server_group(self, blb_id,
                                      name=None,
                                      exactly_match=None,
                                      marker=None,
                                      max_keys=None, config=None):

    使用示例如下:

        app_blb_client.describe_app_server_group(blb_id="lb-f27a5689")

    删除应用型blb服务器组

    描述:

    • 删除服务器组,通过服务器组id指定

    使用以下代码可以删除应用型blb服务器组:

        @required(blb_id=(bytes, str),
                  sg_id=(bytes, str))
        def delete_app_server_group(self, blb_id, sg_id,
                                    client_token=None,
                                    config=None):

    使用示例如下:

        app_blb_client.delete_app_server_group(blb_id="lb-f27a5689", sg_id="sg-60fd478d")

    创建应用型blb服务器组端口

    描述:

    • 在指定应用型BLB下,创建一个服务器组后端端口,将发往该端口的所有流量按权重轮询分发到其绑定的对应服务器列表中的服务器

    使用以下代码可以创建应用型blb服务器组端口:

        @required(blb_id=(bytes, str),
                  sg_id=(bytes, str), port=int,
                  protocol_type=(bytes, str))
        def create_app_server_group_port(self, blb_id, sg_id,
                                         port, protocol_type,
                                         health_check=None,
                                         health_check_port=None,
                                         health_check_urlpath=None,
                                         health_check_timeout_insecond=None,
                                         health_check_interval_insecond=None,
                                         health_check_down_retry=None,
                                         health_check_up_retry=None,
                                         health_check_normal_status=None,
                                         client_token=None,
                                         config=None):

    使用示例如下:

        app_blb_client.create_app_server_group_port(blb_id="lb-f27a5689", sg_id="sg-f3c86bc3", port=81, protocol_type="HTTP", health_check="HTTP")

    更新应用型blb服务器组端口

    描述:

    • 根据id更新服务器组端口。

    使用以下代码可以更新应用型blb服务器组端口:

        @required(blb_id=(bytes, str),
                  sg_id=(bytes, str),
                  port_id=(bytes, str))
        def update_app_server_group_port(self, blb_id, sg_id, port_id,
                                         health_check=None,
                                         health_check_port=None,
                                         health_check_urlpath=None,
                                         health_check_timeout_insecond=None,
                                         health_check_interval_insecond=None,
                                         health_check_down_retry=None,
                                         health_check_up_retry=None,
                                         health_check_normal_status=None,
                                         client_token=None,
                                         config=None):

    使用示例如下:

        app_blb_client.update_app_server_group_port(blb_id="lb-f27a5689", sg_id="sg-f3c86bc3", port_id="port-13afeaae", health_check="HTTP", health_check_port=82)

    删除应用型blb服务器组端口

    描述:

    • 删除服务器组端口,通过服务器组id指定

    使用以下代码可以删除应用型blb服务器组端口:

        @required(blb_id=(bytes, str),
                  sg_id=(bytes, str),
                  port_list=list)
        def delete_app_server_group_port(self, blb_id, sg_id,
                                         port_list,
                                         client_token=None, config=None): 

    使用示例如下:

        app_blb_client.delete_app_server_group_port(blb_id="lb-f27a5689", sg_id="sg-f3c86bc3", port_list=["port-460bb64f"])

    添加应用型blb后端服务器

    描述:

    • 在指定应用型BLB和服务器组下绑定后端服务器RS

    使用以下代码可以添加应用型blb后端服务器:

        @required(blb_id=(bytes, str),
                  sg_id=(bytes, str),
                  backend_server_list=list)
        def create_app_blb_rs(self, blb_id, sg_id,
                              backend_server_list,
                              client_token=None,
                              config=None):

    使用示例如下:

        backendServerList = [
            {
                "instanceId": "i-jVRZWSXN",
                "weight": 100
            }
        ]
        app_blb_client.create_app_blb_rs(blb_id="lb-5fdcc990", sg_id="sg-44c611b9", backend_server_list=backendServerList)

    更新应用型blb后端服务器

    描述:

    • 更新指定服务器组下的RS信息

    使用以下代码可以更新应用型blb后端服务器:

        @required(blb_id=(bytes, str),
                  sg_id=(bytes, str),
                  backend_server_list=list)
        def update_app_blb_rs(self, blb_id, sg_id,
                              backend_server_list,
                              client_token=None,
                              config=None):

    使用示例如下:

        backendServerList = [
            {
                "instanceId": "i-jVRZWSXN",
                "weight": 60
            }
        ]
        app_blb_client.update_app_blb_rs(blb_id="lb-5fdcc990", sg_id="sg-44c611b9", backend_server_list=backendServerList)

    查询应用型blb挂载的后端服务器

    描述:

    • 查询服务器组下绑定的server

    使用以下代码可以查询应用型blb挂载的后端服务器:

        @required(blb_id=(bytes, str),
                  sg_id=(bytes, str))
        def describe_rs_mount(self, blb_id, sg_id, config=None):

    使用示例如下:

        app_blb_client.describe_rs_mount(blb_id="lb-5fdcc990", sg_id="sg-44c611b9")

    查询应用型blb未挂载的后端服务器

    描述:

    • 查询服务器组下未绑定的RS

    使用以下代码可以查询应用型blb未挂载的后端服务器:

        @required(blb_id=(bytes, str),
                  sg_id=(bytes, str))
        def describe_rs_unmount(self, blb_id, sg_id, config=None):

    使用示例如下:

        app_blb_client.describe_rs_unmount(blb_id="lb-5fdcc990", sg_id="sg-44c611b9")

    删除应用型blb的后端服务器

    描述:

    • 删除服务器组下的服务器,通过服务器组id指定

    使用以下代码可以删除应用型blb的后端服务器:

        @required(blb_id=(bytes, str),
                  sg_id=(bytes, str),
                  backend_server_list=list)
        def delete_app_blb_rs(self, blb_id, sg_id,
                              backend_server_list,
                              client_token=None,
                              config=None):

    使用示例如下:

        app_blb_client.delete_app_blb_rs(blb_id="lb-5fdcc990", sg_id="sg-44c611b9", backend_server_list=["i-jVRZWSXN"])
    上一篇
    普通型blb实例
    下一篇
    版本更新说明