環境準備
• 使用阿里雲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)