环境准备
• 使用阿里云Python SDK,您需要一个RAM账号以及一对AccessKey ID和AccessKey Secret。 请在阿里云控制台中的AccessKey管理页面上创建和查看您的AccessKey,或联系您的系统管理员。
• 确保您已经在阿里云控制台开通了运维编排 OOS。
安装阿里云Python SDK
完成以下操作安装Python SDK:
1.安装SDK核心库。推荐使用 pip 命令,安装阿里云SDK核心库:
pip install aliyun-python-sdk-core
- 安装云产品的SDK。以下是安装运维编排OOS的SDK示例:
pip install aliyun-python-sdk-oos
通过Python SDK执行滚动升级
本文以通过脚本执行滚动升级为例:
模板参数详情请查看通过阿里云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)