使用阿里云Python SDK执行ESS滚动升级

环境准备

• 使用阿里云Python SDK,您需要一个RAM账号以及一对AccessKey ID和AccessKey Secret。 请在阿里云控制台中的AccessKey管理页面上创建和查看您的AccessKey,或联系您的系统管理员。
• 确保您已经在阿里云控制台开通了运维编排 OOS

安装阿里云Python SDK

完成以下操作安装Python SDK:
1.安装SDK核心库。推荐使用 pip 命令,安装阿里云SDK核心库:

pip install aliyun-python-sdk-core
  1. 安装云产品的SDK。以下是安装运维编排OOS的SDK示例:
pip install aliyun-python-sdk-oos

通过Python SDK执行滚动升级

本文以通过脚本执行滚动升级为例:
使用阿里云Python SDK执行ESS滚动升级

模板参数详情请查看通过阿里云CLI执行滚动升级文档中模板参数说明部分。

from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.acs_exception.exceptions import ClientException
from aliyunsdkcore.acs_exception.exceptions import ServerException
from aliyunsdkoos.request.v20190601 import StartExecutionRequest
import json
# 创建AcsClient实例
client = AcsClient('<accessKeyId>', '<accessSecret>', '<regionId>')
# 创建request,并设置参数
request = StartExecutionRequest.StartExecutionRequest()
request.set_accept_format('json')
# 模板名称根据所选升级方式替换
request.set_TemplateName("ACS-ESS-RollingUpdateByRunCommandInScalingGroup")
# 参数根据所选模板替换
parameters = {"invokeType": "invoke", 
              "commandType": "RunShellScript", 
              "OOSAssumeRole": "", 
              "exitProcess": [], 
              "invokeScript": "df -h\nifconfig", 
              "rollbackScript": "df -h\nifconfig",
              "enterProcess": [
                  "ScaleIn", 
                  "ScaleOut", 
                  "HealthCheck", 
                  "AlarmNotification", 
                  "ScheduledAction"
                ], 
              "scalingGroupId": "asg-bp1cjeuvlt1e1i1t", 
              "batchNumber": 2, 
              "batchPauseOption": "Automatic"}
# 回滚操作对应的参数
# parameters = {"invokeType": "rollback",
#               "commandType": "RunShellScript",
#               "OOSAssumeRole": "",
#               "rollbackScript": "df -h\nifconfig",
#               "scalingGroupId": "asg-bp1cjeuvlt1e1i1t",
#               "sourceExecutionId": "exec-f577d2a639f24f4e9c0a",
#               "batchNumber": 2,
#               "batchPauseOption": "Automatic"}'
request.set_Parameters(json.dumps(parameters))

# 发起API请求并显示返回值
response = client.do_action_with_exception(request)
print(response)
上一篇:freebsd su root 登陆(su:sorry的解决办法)


下一篇:运维学习资料(1)