python 监听tcp端口_创建TCP监听_创建TCP监听_功能示例_Python SDK示例_SDK 参考_开发指南_负载均衡 - 阿里云...
# encoding=utf-8
import json
import sys
# 调用AcsClient参数进行身份验证
from aliyunsdkcore.client import AcsClient
# 使用阿里云官方sdk的异常处理模块
from aliyunsdkcore.acs_exception.exceptions import ServerException, ClientException
# 调用创建SLB实例API
from aliyunsdkslb.request.v20140515 import CreateLoadBalancerRequest
# 调用添加默认服务器组API
from aliyunsdkslb.request.v20140515 import AddBackendServersRequest
# 调用添加TCP监听API
from aliyunsdkslb.request.v20140515 import CreateLoadBalancerTCPListenerRequest
# 调用从默认服务器组中移除ECS实例API
from aliyunsdkslb.request.v20140515 import RemoveBackendServersRequest
# 调用删除SLB实例API
from aliyunsdkslb.request.v20140515 import DeleteLoadBalancerRequest
# 命令行打印日志
from sdk_lib.common_util import CommonUtil
# 异常处理逻辑
from sdk_lib.exception import ExceptionHandler
'''
创建slb实例->添加后端服务器->创建tcp监听->删除后端服务器->删除slb实例
'''
# client参数配置
ACS_CLIENT = AcsClient(
'your-access-key-id', # your-access-key-id
'your-access-key-secret', # your-access-key-secret
'cn-zhangjiakou', # your-region-id
)
TRY_TIME = 3
def create_load_balancer(params):
'''
create_load_balancer:创建slb实例
官网API参考链接:https://help.aliyun.com/document_detail/27577.html
'''
try:
# 设置创建SLB实例的调用参数
request = CreateLoadBalancerRequest.CreateLoadBalancerRequest()
request.set_MasterZoneId(params["master_zone_id"])
request.set_SlaveZoneId(params["slave_zone_id"])
request.set_LoadBalancerName(params["load_balancer_name"])
request.set_PayType(params["pay_balancer_type"])
request.set_LoadBalancerSpec(params["load_balancer_spec"])
# 发送调用请求并接收返回数据
response = ACS_CLIENT.do_action_with_exception(request)
response_json = json.loads(response)
# 返回结果
return response_json
except ServerException as e:
ExceptionHandler.server_exception(e)
except ClientException as e:
ExceptionHandler.client_exception(e)
def add_backend_servers(params):
'''
add_backend_servers:添加后端服务器
官网API参考链接: https://help.aliyun.com/document_detail/27632.html
'''
counter = 0
while counter < TRY_TIME:
try:
# 设置添加默认服务器组的调用参数
request = AddBackendServersRequest.AddBackendServersRequest()
# 负载均衡实例的ID
request.set_LoadBalancerId(params["load_balancer_id"])
# 要添加的后端服务器列表
request.set_BackendServers(params["backend_servers"])
# 发送调用请求并接收返回数据
response = ACS_CLIENT.do_action_with_exception(request)
response_json = json.loads(response)
# 返回结果
return response_json
except ServerException as e:
if ExceptionHandler.server_exception(e):
return e
except ClientException as e:
if ExceptionHandler.client_exception(e):
return e
finally:
counter += 1
def create_tcp_listener(params):
'''
create_tcp_listener:创建tcp监听
官网API参考链接: https://help.aliyun.com/document_detail/27594.html
'''
counter = 0
while counter < TRY_TIME:
try:
# 设置创建TCP监听的调用参数
request = CreateLoadBalancerTCPListenerRequest.CreateLoadBalancerTCPListenerRequest()
# 负载均衡实例的ID
request.set_LoadBalancerId(params["load_balancer_id"])
# 负载均衡实例前端使用的端口
request.set_ListenerPort(params["listener_port"])
# 负载均衡实例后端使用的端口
request.set_BackendServerPort(params["backend_server_port"])
# 监听的健康检查协议
request.set_HealthCheckType(params["listener_health_check"])
# 设置监听的带宽峰值
request.set_Bandwidth(params["listener_bandwidth"])
# 发送调用请求并接收返回数据
response = ACS_CLIENT.do_action_with_exception(request)
response_json = json.loads(response)
# 返回结果
return response_json
except ServerException as e:
if ExceptionHandler.server_exception(e):
return e
except ClientException as e:
if ExceptionHandler.client_exception(e):
return e
finally:
counter += 1
def remove_backend_servers(params):
'''
add_backend_servers:删除后端服务器
官网API参考链接: https://help.aliyun.com/document_detail/27633.html
'''
counter = 0
while counter < TRY_TIME:
try:
# 设置删除后端服务器的调用参数
request = RemoveBackendServersRequest.RemoveBackendServersRequest()
# 负载均衡实例的ID
request.set_LoadBalancerId(params["load_balancer_id"])
# 要删除的后端服务器列表
request.set_BackendServers(params["backend_servers"])
# 发送调用请求并接收返回数据
response = ACS_CLIENT.do_action_with_exception(request)
response_json = json.loads(response)
# 返回结果
return response_json
except ServerException as e:
if ExceptionHandler.server_exception(e):
return e
except ClientException as e:
if ExceptionHandler.client_exception(e):
return e
finally:
counter += 1
def delete_load_balancer(load_balancer_id):
'''
delete_load_balancer:删除slb实例
官网API参考链接:https://help.aliyun.com/document_detail/27579.html
'''
try:
# 设置删除SLB实例的调用参数
request = DeleteLoadBalancerRequest.DeleteLoadBalancerRequest()
# 负载均衡实例的ID
request.set_LoadBalancerId(load_balancer_id)
# 发送调用请求并接收返回数据
response = ACS_CLIENT.do_action_with_exception(request)
response_json = json.loads(response)
# 返回结果
return response_json
except ServerException as e:
ExceptionHandler.server_exception(e)
except ClientException as e:
ExceptionHandler.client_exception(e)
def main():
params = {}
# 设置创建SLB实例的参数
# 设置新建SLB实例的主可用区为cn-zhangjiakou-a
params["master_zone_id"] = "cn-zhangjiakou-a"
# 设置新建SLB实例的主可用区为cn-zhangjiakou-b
params["slave_zone_id"] = "cn-zhangjiakou-b"
# 设置新建SLB实例的名称为SLB1
params["load_balancer_name"] = "SLB1"
# 设置新建SLB实例的计费类型为按量计费
params["pay_balancer_type"] = "PayOnDemand"
# 设置新建SLB实例的规格为slb.s1.small
params["load_balancer_spec"] = "slb.s1.small"
# 设置添加到默认服务器组的ECS的实例ID和权重
params["backend_servers"] = [{"ServerId": "i-8vbe8yi8krxxxxxxxxxxw", "Weight": "100"},
{"ServerId": "i-8vbe8yi8kccxxxxxxxxxv", "Weight": "100"}]
# 设置添加TCP监听的参数
# 前端使用的端口为80
params["listener_port"] = 80
# 后端服务器开放用来接收请求的端口为80
params["backend_server_port"] = 80
# 健康检查协议为TCP
params["listener_health_check"] = "tcp"
# TCP监听的带宽峰值为-1,即不限制带宽峰值
params["listener_bandwidth"] = -1
# 创建slb实例
# 获取create_load_balancer函数返回值,load_balancer_json为结果的json串
load_balancer_json = create_load_balancer(params)
# 打印 load_balancer_json结果,其中"create_load_balancer"是对json串起的名字
CommonUtil.log("create_load_balancer", load_balancer_json)
# slb实例id
params["load_balancer_id"] = load_balancer_json["LoadBalancerId"]
# 添加后端服务器
load_balancer_json = add_backend_servers(params)
CommonUtil.log("add_backend_servers", load_balancer_json)
# 创建tcp监听
load_balancer_json = create_tcp_listener(params)
CommonUtil.log("create_tcp_listener", load_balancer_json)
# 删除后端服务器
load_balancer_json = remove_backend_servers(params)
CommonUtil.log("remove_backend_servers", load_balancer_json)
# 删除slb实例
# 删除返回的LoadBalancerId对应的SLB实例
load_balancer_json = delete_load_balancer(load_balancer_json["LoadBalancerId"])
# 打印 load_balancer_json结果
CommonUtil.log("delete_load_balancer", load_balancer_json)
if __name__ == "__main__":
sys.exit(main())
python 监听tcp端口_创建TCP监听_创建TCP监听_功能示例_Python SDK示例_SDK 参考_开发指南_负载均衡 - 阿里云...相关推荐
- python和pygame游戏开发指南_学习记录
<python和pygame游戏开发指南> Making Games With Python and Palme [美]Ai Sweigart 著,李强 译,2015.12第一版 文章目录 ...
- 区块链开发指南_区块链开发权威指南
区块链开发指南 by Haseeb Qureshi 由Haseeb Qureshi 区块链开发权威指南 (The authoritative guide to blockchain developme ...
- web开发指南_成为专业Web开发人员的实用指南
web开发指南 This article is meant to serve as a practical guide to becoming a professional web developer ...
- fabric shim安装合约_智能合约简介_智能合约开发_Hyperledger Fabric_开发指南_区块链服务 BaaS - 阿里云...
概述 在 Hyperledger Fabric 中,链码(Chaincode)又称为智能合约(下文中我们统一称为链码),是用Go,node.js或Java编写的程序,主要用于操作账本上的数据.用户的应 ...
- 物联卡查询流量_物联卡流量查询_python_API文档_开发指南_物联网无线连接服务 - 阿里云...
物联网卡流量查询接口 步骤 1 创建阿里云账号 为了访问服务,您需要有一个阿里云账号.如果没有,可首先按照如下步骤创建阿里云账号: 访问阿里云 官方网站,单击页面上的 免费注册 按钮. 按照屏幕提示完 ...
- libgdx开发指南_使用libgdx进行Android游戏开发–一天中的原型,第1a部分
libgdx开发指南 在本文中,我将绕开游戏引擎和组件的构建模块,并演示如何使用libgdx库快速制作游戏原型. 您将学到什么: 创建一个非常简单的2D Shooter Platformer游戏. 完 ...
- python听歌识曲爬虫_Python爬取网易云音乐热门评论的搜索结果-阿里云开发者社区...
网易云音乐评论爬虫(三):爬取歌曲的全部评论 用过网易云音乐听歌的朋友都知道,网易云音乐每首歌曲后面都有很多评论,热门歌曲的评论更是接近百万或者是超过百万条.现在我就来分享一下如何爬取网易云音乐歌曲的 ...
- python中shutil模块_python文件、文件夹、压缩包处理模块-shutil模块-阿里云开发者社区...
shutil模块 高级的文件.文件夹.压缩包 处理模块 本节内容基本在linux下python交互环境实现 复制移动文件.文件夹 将文件内容拷贝到另一个文件中,可以部分内容 格式如下: ``` shu ...
- 区块链开发指南_区块链开发完全指南
区块链将是技术的发展方向. 我认为未来将围绕区块链一新兴技术构建,这绝不是什么牵强附会.区块链最初被设计成一种公共的,无权限的技术,后来引入了另一种区块链,每种区块链都有自己独特的用例集.公共/无权限 ...
最新文章
- Matlab数据的可视化 -- 散点图
- python语言是谁发明的咋读-Guido发明的python语言是哪一年正式发布的?
- 【深度学习】array, list, tensor,Dataframe,Series之间互相转换总结
- html select 可输入 可编辑
- 线性代数及其应用(part3)--对角化
- android ble 连续读写,Android BLE实现对蓝牙的读写
- SpringMVC框架搭建( 使用Jar包搭建)
- 鸿蒙 OS 尖刀武器之分布式软总线技术全解析!
- jquery上传图片_MVC 上传图片,裁剪头像
- 十全干货:核心游戏系统架构设计
- UVA12541 LA6148 Birthdates【最值】
- python迭代器一般包含_python 迭代器
- 五万字整理Mybatis 入门只需要一篇文章
- 段落超出,省略...
- 如何使用UMAP分析100维数据,惊艳令人叹为观止
- 站在两个世界的边缘 程浩,一个认真生活过的人
- 各省市大学 全国各个省市重点民办本专科大学
- 【Pygame小游戏】趣味益智游戏 :打地鼠,看一下能打多少只呢?(附源码)
- 银行等单位工作日计算的实现
- DedeCMS织梦教程:菜鸟级基础问题解决方法大汇总