Python调用aliyun短信接口发短信
#!/usr/bin/env python
#coding=utf-8
import commands
import time
import datetime
import os
from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.request import CommonRequest
from aliyunsdkcore.auth.credentials import AccessKeyCredential
from aliyunsdkcore.auth.credentials import StsTokenCredential
def send_message(start_time):
messages = {"env": "pro","svc_name": "tts-core","time": "2021"}
messages['time'] = str(start_time)
credentials = AccessKeyCredential('AccessKeyID', 'AccessKeySecrt');
client = AcsClient(region_id='cn-hangzhou', credential=credentials)
request = CommonRequest()
request.set_accept_format('json')
request.set_domain('dysmsapi.aliyuncs.com')
request.set_method('POST')
request.set_protocol_type('https') # https | http
request.set_version('2017-05-25')
request.set_action_name('SendSms')
#request.add_query_param('TemplateParam', "{'env': '生产','svc_name': 'tts-core','time': '2021'}")
request.add_query_param('TemplateParam', messages)
request.add_query_param('PhoneNumbers', "13638663350,18674089724") # 给刘侃发短信
# request.add_query_param('PhoneNumbers', "12345678901,12345678902") # 多号码的写法
# request.add_query_param('PhoneNumbers', "12345678901") # 单号码的写法
request.add_query_param('SignName', "短信签名") # 替换短信签名
request.add_query_param('TemplateCode', "SMS_xxxxx") # 替换模版CODE
response = client.do_action(request)
#print(str(response, encoding = 'utf-8')) # python3
print(response)
#start_time = commands.getoutput("date -d \"$(kubectl describe -n pro-mml po $(kubectl get po -n pro-mml | grep tts-core | head -n 1 | awk -F ' ' '{print$1}') | grep 'Start Time' | awk -F ',' '{print$2}')\" \"+%F %T\"")
pod_time = int(commands.getoutput("date -d \"$(kubectl describe -n pro-mml po $(kubectl get po -n pro-mml | grep tts-core | head -n 1 | awk -F ' ' '{print$1}') | grep 'Start Time' | awk -F ',' '{print$2}')\" +%s"))
now_time = int(time.time())
start_time = datetime.datetime.fromtimestamp(pod_time).strftime("%Y-%m-%d %H:%M:%S")
compute = now_time-pod_time
if compute < 60:
# 发短信
send_message(start_time)
# 发邮件
os.system("echo '生产环境 jp-tts-core-1 服务已于 %s 启动或重启,请检查批处理是否需要重启!' | mail -s '生产环境 jp-tts-core-1 服务已启动或重启!' [email protected] [email protected] [email protected]" % (start_time))
最后更新于