内容简介:客户有需求在非工作时间将腾讯云CVM停机,工作时间又开起来,停止可以在系统内写定时任务来,但启动需要在腾讯云平台,就需要使用腾讯云的API来进行操作,还好腾讯云核心代码
一、背景
客户有需求在非工作时间将腾讯云CVM停机,工作时间又开起来,停止可以在系统内写定时任务来,但启动需要在腾讯云平台,就需要使用腾讯云的API来进行操作,还好腾讯云 SDK for Python ,简单记录下。
二、代码
核心代码
-
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
三、测试
-
单独执行
- 配合定时任务部署在服务器上
使用 Python 2.7 ,建议使用centos7以上不用单独安装python,默认版本即可操作git clone https://github.com/redhatxl/my-python-code.git /usr/local/pythoncode
配置好config.py中腾讯云平台的信息后(建议创建单个子用户,为子用户仅授权操作的cvm实例获取其secretid,secretkey),制作定时任务
- 查看日志
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- JavaScript骚操作之操作符
- Go 语言操作 MySQL 之 事务操作
- C# 数据操作系列 - 1. SQL基础操作
- Vim 跨行操作与 Ex 命令操作范围
- 并发环境下,先操作数据库还是先操作缓存?
- 关于HBase Shell基本操作的表操作示例
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。