城中IT教育资源网


python站群系统

python实现监控阿里云账户余额功能

由于阿里云oss,cdn消耗钱的速度比较快,在不知道的情况下,服务就被停了,影响比较大。所以想做个监控。百度一下

查阅资料创建accessKeyId和accessKeySecret

官方文档(感觉并不细致)看了官方文档后还是有点懵逼,后面Google了这个关键字

才看到真正的样例代码感觉这块资料很少呀,

居然没写在sdk安装列表里面,在社区找到的)。创建accessKeyId,鼠标悬停到右上角

sudopipinstallaliyun-python-sdk-core-i#检查账户余额defcheck_account(name,accessKeyId,accessKeySecret,valve,notify_emails):region_provider.add_endpoint('BssOpenApi','cn-hangzhou',',accessKeySecret,'cn-hangzhou')request=QueryAccountBalanceRequest.QueryAccountBalanceRequest()request.set_accept_format("JSON")result=clt.do_action_with_exception(request)print(result)

下面是我封装的检查账户余额,如果低于阀值就给要通知的人发邮件。

#-*-coding:UTF-8-*-'''监控阿里云账户余额zhouzhongqing2019年12月14日20:21:11sudopipinstallaliyun-python-sdk-core-i#qq邮箱smtp服务器host_server='#sender_qq为发件人的qq号码'#pwd为qq邮箱的授权码pwd='xxxxxx'#发件人的邮箱'#第一个参数确定任务的时间,返回从某个特定的时间到现在经历的秒数#第二个参数以某种人为的方式衡量时间schedule=sched.scheduler(time.time,time.sleep);defsend_mail(receiver,name,balance,valve):#收件人邮箱'#邮件的正文内容mail_content='您好,目前账户%s,余额为%s,低于阀值%s,请知悉!'%(name,balance,valve)#邮件标题mail_title='%s余额监控通知邮件'%(name)#ssl登录smtp=smtplib.SMTP_SSL(host_server)#set_debuglevel()是用来调试的。参数值为1表示开启调试模式,参数值为0关闭调试模式smtp.set_debuglevel(0)smtp.ehlo(host_server)smtp.login(sender_qq,pwd)msg=MIMEText(mail_content,"plain",'utf-8')msg["Subject"]=Header(mail_title,'utf-8')msg["From"]=sender_qq_mailmsg["To"]=receiversmtp.sendmail(sender_qq_mail,receiver,msg.as_string())smtp.quit()#解析配置defparse_account():f=open("monitor.json")lines=f.read()data=json.loads(lines)f.close()returndata#检查账户余额defcheck_account(name,accessKeyId,accessKeySecret,valve,notify_emails):region_provider.add_endpoint('BssOpenApi','cn-hangzhou',',accessKeySecret,'cn-hangzhou')request=QueryAccountBalanceRequest.QueryAccountBalanceRequest()request.set_accept_format("JSON")result=clt.do_action_with_exception(request)#print(result)res_json=json.loads(str(result,encoding="utf-8"))print(res_json)ifres_jsonisnotNoneandres_json["Code"]=="200":availableAmount=res_json["Data"]["AvailableAmount"]ifDecimal(availableAmount)