发布时间:2019-09-19 08:02:35编辑:auto阅读(1443)
客户有需求在非工作时间将腾讯云CVM停机,工作时间又开起来,停止可以在系统内写定时任务来,但启动需要在腾讯云平台,就需要使用腾讯云的API来进行操作,还好腾讯云SDK for Python ,简单记录下。
git 地址
核心代码
CVM操作
class CvmOper():
def __init__(self,logger):
config = configparser.ConfigParser()
config.read('config.py',encoding='utf-8')
self.instance_list = config['common']['InstanceIds'].split(',')
print(self.instance_list)
cred = credential.Credential(config['common']['SecretId'], config['common']['SecretKey'])
self.clentoper = cvm_client.CvmClient(cred, config['common']['Region'])
self.logger = logger
self.logger.info("------------------------start cvm of API log-------------")
def reboot_instance(self):
"""
重启cvm
:return:
"""
# 设置参数
request = models.RebootInstancesRequest()
request.InstanceIds=self.instance_list
# 发起请求
response = self.clentoper.RebootInstances(request)
self.logger.info("public ecs *** reboot successful!")
self.logger.info(response.to_json_string())
print(response.to_json_string())
[common]
# 腾讯云secretid
SecretId = AKIDjPYbTBU4FF4iAQuxxxxxxxxxxxxxxxxxxxxx
# 腾讯云secretkey
SecretKey = e7RaXYVP63rUvBNUQxxxxxxxxxxxxxxxx
# cvm 所在地域
Region = ap-shanghai
# 腾讯云cvm实例id,多个用,隔开
InstanceIds = ins-h8dxxxx
class CvmLog:
def __init__(self,filename):
self.filename = filename
def createDir(self):
_LOGDIR = os.path.join(os.path.dirname(__file__), 'cvmlog')
print(_LOGDIR)
_TIME = time.strftime('%Y-%m-%d', time.gmtime()) + '-'
_LOGNAME = _TIME + self.filename
print(_LOGNAME)
LOGFILENAME = os.path.join(_LOGDIR, _LOGNAME)
print(LOGFILENAME)
if not os.path.exists(_LOGDIR):
os.mkdir(_LOGDIR)
return LOGFILENAME
def createlogger(self,logfilename):
logger= logging.getLogger()
logger.setLevel(logging.INFO)
handler = logging.FileHandler(logfilename)
handler.setLevel(logging.INFO)
formater = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
handler.setFormatter(formater)
logger.addHandler(handler)
return logger
单独执行
git clone https://github.com/redhatxl/my-python-code.git /usr/local/pythoncode
配置好config.py中腾讯云平台的信息后(建议创建单个子用户,为子用户仅授权操作的cvm实例获取其secretid,secretkey),制作定时任务
上一篇: SendPkt快速入门[Python]
下一篇: Python中的字符串驻留
47840
46386
37279
34729
29312
25970
24909
19948
19541
18020
5790°
6411°
5926°
5960°
7063°
5910°
5942°
6437°
6404°
7776°