背景:服务部署在阿里云ECS上,使用了阿里云SLB做负载均衡。使用jenkins做金丝雀发时,希望可以自动修改SLB的权重,实现服务器的上下线。

安装阿里云Python SDK

完成以下操作安装Python SDK:

  1. 安装SDK核心库。

    推荐使用 pip 命令,安装阿里云SDK核心库:

    pip install aliyun-python-sdk-core
  2. 安装云产品SLB的SDK。
    pip install aliyun-python-sdk-slb

如果您在使用 pip 时,遇到网络导致的安装问题时,请尝试配置镜像来加速安装过程。PyPI 镜像设置参见:https://developer.aliyun.com/mirror/pypi。

您也可以在GitHub下载各产品的SDK。

代码实现

set_aliyun_slb_weight.py

#!/usr/bin/env python
#coding=utf-8
#version 3.9.1
#AK,SK,regionID,SLBID,ECSID都需要替换
import sys
from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.acs_exception.exceptions import ClientException
from aliyunsdkcore.acs_exception.exceptions import ServerException
from aliyunsdkslb.request.v20140515.SetBackendServersRequest import SetBackendServersRequestweight1=sys.argv[1]
weight2=sys.argv[2]client = AcsClient('AK', 'SK', 'regionID')request1 = SetBackendServersRequest()
request1.set_accept_format('json')
request1.set_LoadBalancerId("SLBID")
request1.set_BackendServers("[{ \"ServerId\": \"ECS1ID\", \"Weight\": %s, \"Type\": \"ecs\", \"Port\":\"80\",\"Description\":\"ECS1\" }]" %weight1)
response = client.do_action_with_exception(request1)
#print(str(response, encoding='utf-8'))request2 = SetBackendServersRequest()
request2.set_accept_format('json')
request2.set_LoadBalancerId("SLBID")
request2.set_BackendServers("[{ \"ServerId\": \"ECS2ID\", \"Weight\": %s, \"Type\": \"ecs\", \"Port\":\"80\",\"Description\":\"ECS2\" }]" %weight2)
response = client.do_action_with_exception(request2)
print(str(response, encoding='utf-8'))

调用脚本实现先发布到ECS1:set_aliyun_slb_weight  0 100,待测试通过后,再发布到ECS2

set_aliyun_slb_weight  100 0,最后设置  set_aliyun_slb_weight  100 100

参考1:https://help.aliyun.com/document_detail/53090.html?spm=a2c1g.8271268.10000.158.2e90df25MByzQI

参考2:https://help.aliyun.com/document_detail/27566.html?spm=a2c4g.11186623.6.809.20005795sk2FT7

参考3:https://api.aliyun.com/#/?product=Slb&version=2014-05-15&api=DescribeLoadBalancerAttribute&params={%22RegionId%22:%22cn-shenzhen%22,%22LoadBalancerId%22:%22lb-wz9az39295kx3dhyq3zfr%22}&tab=DEMO&lang=PYTHON

调用阿里云SLB API设置SLB权重相关推荐

  1. 调用阿里云web API实现滑块验证码

    文章目录 滑块验证码的实现原理 调用阿里云web API实现图形验证码 效果演示: 本来想着弄一个算术验证码的,后来发现这玩意儿对我自己也太不友好了

  2. ■ 直接调用阿里云视频点播API实现视频播放

    前言:公司最近要实现一个视频播放的功能,正常是不需要移动端调用阿里云视频API的,这件事是由后台来完成的.但是既然需求交给我了,就要想办法完成. 先来看一眼官方的API调用文档 https://hel ...

  3. 后端调用阿里云快递API接口--后端部分

    这是小练手,调用接口要买,一般都会有一次机会0元100次 为了节约调用接口的次数 后端部分:(快递接口不同的话会出错) 工具类 1.HttpUtils import org.apache.common ...

  4. JAVA中调用阿里云语音通知Api并接收消息回执

    JAVA中调用阿里云语音通知Api并接收消息回执 配置文件 需要的包 <dependency><groupId>com.aliyun</groupId><ar ...

  5. python如何调用阿里云接口_python 调用阿里云云解析api添加记录

    首先安装阿里云SDK pip install aliyun-python-sdk-core pip install aliyun-python-sdk-alidns 可以配合jenkins传递参数 # ...

  6. 踩坑记:C#访问阿里云的API小结,阿里云的文档有待改善……

    为运维管理方便需要,写了一个小工具去调用阿里云的API,包括操作ECS.SLB.域名等等API,结果就这么一点点小东西,也被阿里云的文档坑了好多次,下面5个问题,有3个跟阿里云文档相关-- 关键是阿里 ...

  7. 调用阿里云接口一键实现人像动漫化

    调用阿里云接口一键实现人像动漫化 前言 一.整体流程 二.生成效果 总结 前言 在一篇博客中学到了调用API实现人像动漫化,不过有些东西还不是特别明白,所以写下这篇文章,参考链接在末尾,通过调用阿里云 ...

  8. vue调用阿里云无痕验证

    vue调用阿里云无痕验证 在调用阿里云无痕验证时有个先决条件需要全局变量先定义才能去加载js set_ALY_config () {var _this = thisreturn new Promise ...

  9. 阿里云ACP认证(SLB专项)

    1.阿里云的负载均衡SLB.云服务器ECS以及弹性伸缩(Auto Scaling)配合使用时,同一个负载均衡SLB实例的后端服务器池中可以包含多个伸缩组.A A:是 B否 2.如果您使用了阿里云的云服 ...

最新文章

  1. 机器学习中的标量、向量、矩阵、和张量的概念
  2. 20145201李子璇 《网络对抗》恶意代码分析
  3. 【SICP练习】138 练习3.69
  4. linux 下 MySQL卸载和安装
  5. C++11新特性之八——函数对象function
  6. java操作Excel的poi 遍历一个工作簿
  7. java代码运行Python程序
  8. java post 注册_Java 以 post 发送方式实现百度链接提交主动推送
  9. jQuery Post
  10. 网路收报流程-网桥的处理流程(br网桥)(四)
  11. Win10 安装 XPS查看器
  12. ros安装详细教程+问题解决
  13. php图片不存在输出默认图片,JS图片加载失败显示默认图片
  14. cad怎样弄出放线的坐标_怎么把图纸上的坐标输入CAD详细步骤?
  15. 【WebLogic】解决opatch执行报错“Exception occured: fuser could not be located”
  16. 如何选择好的软件测试技术?
  17. 软件畅想:英文阅读器
  18. 计算机英语上海答案,上海居转户 计算机或英语职称证书
  19. 前端学习(2451):表单数据的绑定
  20. 城乡供水一体化信息化系统-城乡供水一体化

热门文章

  1. stm32f103电子钟心得体会_STM32中的时钟
  2. 七年级计算机教案部编,七年级信息技术教案新部编本.docx
  3. win10的高占用CPU的进程wsappx关闭指南+解决win10应用商店打不开
  4. django 缓存cache配置注意事项
  5. android端向后台传图片,Android前台从后台下载一张图片 以及 Android前台上传一张图片到后台...
  6. 二叉树与哈希表以及基本算法
  7. Graphite安装
  8. Aspose.Words for .NET使用教程(七):将文档转换为EPUB
  9. 探营长虹软服 共议数字化转型与创新
  10. 《你不知道的JavaScript(中卷)》读后笔记 —— JavaScript中“Number”的冷门知识点