示例#1
0
    def do_delete(self, region_id, instance_id):
        client = AcsClient(self.aliyun_token['id'], self.aliyun_token['secret'], region_id)

        # check status first
        describeInstanceAttributeRequest = DescribeInstanceAttributeRequest.DescribeInstanceAttributeRequest()
        describeInstanceAttributeRequest.set_InstanceId(instance_id)
        describeInstanceAttributeRequest.set_accept_format('json')

        resp = json_decode(client.do_action(describeInstanceAttributeRequest))

        result = {}
        # check if exist
        if 'Code' in resp.keys() and resp['Code'] == 'InvalidInstanceId.NotFound':
            result['text'] = 'delete %s %s failed, %s' % (region_id, instance_id, resp['Code'])
        else:
            if resp['Status'] != 'Stopped':
                result['text'] = 'delete %s %s failed, stop instance first' % (region_id, instance_id)
                result['attachments'] = [{"title": "%s" % resp['InstanceId'], "text": "%s" % resp['Status'], "color": "%s" % self.status_color(resp['Status'])}]
            else:
                deleteInstanceRequest = DeleteInstanceRequest.DeleteInstanceRequest()
                deleteInstanceRequest.set_InstanceId(instance_id)
                deleteInstanceRequest.set_accept_format('json')

                client.do_action(deleteInstanceRequest)
                result['text'] = 'deleting instance %s %s' % (region_id, instance_id)

        return result
示例#2
0
class Client:
    def __init__(self,filepath,ip):
        self.filepath = filepath
        with open(filepath, 'r') as f:
            self.config = json.load(f)
        self.clt = AcsClient(self.config.get('Key'), self.config.get('Secret'), self.config.get('Region'))
        if not self.config.get('RecordID'):
            self.GetRecordID()
        self.config['IP']=ip
        self.UpdateRecord()

    def GetRecordID(self):
        id_r = DescribeDomainRecordsRequest.DescribeDomainRecordsRequest()
        id_r.set_DomainName(self.config.get('Domain'))
        id_r.set_RRKeyWord(self.config.get('RR'))
        id_re = self.clt.do_action(id_r)
        id_xml = fromstring(id_re.decode())
        self.config['RecordID'] = id_xml.find('DomainRecords/Record/RecordId').text
        with open(self.filepath, "w") as f:
                f.write(json.dumps(self.config))

    def UpdateRecord(self):
        ur_r = UpdateDomainRecordRequest.UpdateDomainRecordRequest()
        ur_r.set_RR(self.config['RR'])
        ur_r.set_RecordId(self.config['RecordID'])
        ur_r.set_Type('A')
        ur_r.set_Value(self.config['IP'])
        ur_r.set_Line("default")
        ur_re = self.clt.do_action(ur_r)
        Log(ur_re)
示例#3
0
def get_phone_code(*, phone: int, phone_code: str) -> tuple:
    """
    获取短信验证码
    phone: 手机号
    """
    AccessKey = settings.PHONE_ACCESSKEY
    AccessSecret = settings.PHONE_ACCESSSECRET
    code = "cn-hangzhou"
    try:
        client = AcsClient(AccessKey, AccessSecret, code, phone)
        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("RegionId", "cn-hangzhou")
        request.add_query_param("PhoneNumbers", phone)
        request.add_query_param("SignName", settings.PHONE_SIGNNAME)
        request.add_query_param("TemplateCode", settings.PHONE_TEMPLATECODE)

        json_data = json.dumps({"code": phone_code})
        request.add_query_param("TemplateParam", json_data)
        client.do_action(request)
    except Exception as e:
        message = f"向手机 {phone} 发送验证码失败"
        logger.error(message, e)
        return None, message
    phone_code_time = settings.PHONE_CODE_EXPIRE_SECONDS // 60
    message = f"验证码已发送, {phone_code_time}分钟之内有效"
    return phone_code, message
示例#4
0
    def do_create(self, region_id, template_name, instance_name):
        client = AcsClient(self.aliyun_token['id'], self.aliyun_token['secret'], region_id)

        # Step 1, run instance from launch template
        runInstancesRequest = RunInstancesRequest.RunInstancesRequest()
        runInstancesRequest.set_LaunchTemplateName(template_name)
        runInstancesRequest.set_accept_format('json')
        runInstancesRequest.set_InstanceName(instance_name)

        resp = json_decode(client.do_action(runInstancesRequest))
        instanceId = resp['InstanceIdSets']['InstanceIdSet'][0]

        # Step 2, allocate eip
        allocateEipAddressRequest = AllocateEipAddressRequest.AllocateEipAddressRequest()
        allocateEipAddressRequest.set_InternetChargeType('PayByTraffic')
        #allocateEipAddressRequest.set_InstanceChargeType('PostPaid')
        allocateEipAddressRequest.set_accept_format('json')

        resp = json_decode(client.do_action(allocateEipAddressRequest))
        ipAddress = resp['EipAddress']
        allocationId = resp['AllocationId']

        time.sleep(30)

        # Step 3, associate eip
        associateEipAddressRequest = AssociateEipAddressRequest.AssociateEipAddressRequest()
        associateEipAddressRequest.set_AllocationId(allocationId)
        associateEipAddressRequest.set_InstanceId(instanceId)
        associateEipAddressRequest.set_accept_format('json')

        client.do_action(associateEipAddressRequest)
示例#5
0
class AliyunService():
    def __init__(self, key, secret):
        self.key = key
        self.secret = secret
        self.client = AcsClient(
            self.key,
            self.secret,
            'cn-beijing',
        )
        self.request = CommonRequest()
        self.request.set_accept_format('json')
        self.request.set_domain('ecs.aliyuncs.com')
        self.request.set_method('POST')
        self.request.set_version('2014-05-26')

    def get_all_region(self):
        try:
            self.request.set_action_name('DescribeRegions')

            return self.client.do_action(self.request)
            # python2:  print(response)
            # print(str(response, encoding = 'utf-8'))
        except:
            pass

    def get_allhost(self, region="cn-beijing", PageNumber=1):
        try:
            self.request.set_action_name('DescribeInstances')
            self.request.add_query_param('RegionId', region)
            self.request.add_query_param('PageSize', 100)
            self.request.add_query_param('PageNumber', PageNumber)

            return self.client.do_action(self.request)
        except:
            pass
def json_to_js(server_name):
    print(server_name)
    instance_id = ''
    if 'saasapi' in server_name:
        instance_id = 'i-bp1cxjakqgruiklj6r42'
    if 'openapi' in server_name:
        instance_id = 'i-bp1hqj94tqd6rehk40wa'
    instance_str = {"instanceId": instance_id}
    end_time = time.time() + 15
    start_time = end_time - 60 * 10 - 15
    end_time = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(end_time))
    start_time = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(start_time))
    client = AcsClient("LTAIS2gayXtUpGes", "2dz2N0LVTKA8cvP38YhKJf44N77nq3",
                       "cn-hangzhou")
    request = CommonRequest()
    request.set_accept_format('json')
    request.set_domain('metrics.aliyuncs.com')
    request.set_method('POST')
    request.set_version('2018-03-08')
    request.set_action_name('QueryMetricData')
    request.add_query_param('Metric', 'cpu_total')
    request.add_query_param('Project', 'acs_ecs_dashboard')
    request.add_query_param('StartTime', start_time)
    request.add_query_param('EndTime', end_time)
    request.add_query_param('Dimensions', str(instance_str))
    time.sleep(30)
    response = client.do_action(request)
    cpu_data = json.loads(response.decode('utf-8')).get('Datapoints')
    cpu_data = json.loads(cpu_data)
    request.add_query_param('Metric', 'memory_usedutilization')
    response = client.do_action(request)
    memory_data = json.loads(response.decode('utf-8')).get('Datapoints')
    memory_data = json.loads(memory_data)

    times = [i.get('timestamp') for i in cpu_data]
    times = [
        time.strftime('%H:%M:%S', time.localtime(i / 1000)) for i in times
    ]
    cpu_list = [i.get('Average') for i in cpu_data]
    memory_list = [i.get('Average') for i in memory_data]

    js_str = """
        xAxis: {
            type: 'category',
            boundaryGap: false,
            data: %s},
        yAxis: {type: 'value'},
        series: [{name:'CPU使用率', type:'line', data:%s},
        {name:'内存使用率', type:'line', data:%s},
        """ % (times, cpu_list, memory_list)

    return js_str
示例#7
0
def smsVerifySend(code,nowTime,baseDate):
  if not constant.smsSwitch:
    return
  if not timeBetween() and not constant.smsSwitch:
    print("时间不在范围内或者开关关闭,无需发短信")
    return 
  phoneNumbers = constant.phoneNumbers;
  client = AcsClient(constant.accessKeyId, constant.accessKeySecret, 'cn-hangzhou')
  request = CommonRequest()
  request.set_accept_format('json')
  request.set_domain('dysmsapi.aliyuncs.com')
  request.set_method('POST')
  request.set_protocol_type('https') #
  request.set_version('2017-05-25')
  request.set_action_name('SendSms')

  request.add_query_param('RegionId', "cn-hangzhou")
  request.add_query_param('SignName', constant.signName)
  request.add_query_param('TemplateCode', constant.smsTemplateCode)
  request.add_query_param('TemplateParam', "{\"code\":\""+code+"\"}")
  cursor.execute("select * from hold_stock where stock_code='%s' and hold_flag=1" % (code))
  fetchFlag = cursor.fetchone()
  if not fetchFlag:
    print("不在范围内")
    return
  if len(code)>6 and len(code)<20 :
    myNumberArray = constant.myNumber;
    #没三分钟发一次短信
    if int(nowTime[14:16])%3 == 2:
      for number in myNumberArray.split(','):
        request.add_query_param('PhoneNumbers', number)
        response = client.do_action(request)
        print(response)
    return
  for number in phoneNumbers.split(','):
    request.add_query_param('PhoneNumbers', number)
    cursor.execute("SELECT * FROM sms_send_record where stock_code='%s' and phone_number='%s' and DATE(send_date)='%s'" % (code,number,baseDate))
    flag = cursor.fetchone()
    #这里设置可以一直发
    flag=False
    if flag:
       pass
    else:
      response = client.do_action(request)
      cursor.execute("select stock_name from all_stock where stock_code='%s' " % (code))
      stockName = cursor.fetchone()[0]
      #stockName='weizhi'
      cursor.execute("INSERT INTO sms_send_record (stock_code,stock_name, phone_number, send_date) VALUES ('%s','%s', '%s', '%s')" % (code,stockName,number,nowTime))
      db.commit()
      print(str(response, encoding = 'utf-8'))
示例#8
0
def getAliyunEcsIp(cate='ip',account='',passkey='',endpoint=''):
    client = AcsClient(account, passkey, endpoint)
    request = CommonRequest()
    request.set_accept_format('json')
    request.set_domain('ecs.aliyuncs.com')
    request.set_method('POST')
    request.set_protocol_type('https') # https | http
    request.set_version('2014-05-26')
    request.set_action_name('DescribeInstances')
    # request.add_query_param('RegionId', 'cn-hangzhou')
    request.add_query_param('PageSize', '100')  # 返回数量
    request.add_query_param('Status', 'Running') # ECS状态:运行中 

    response = client.do_action(request)
    res = json.loads(str(response,encoding='utf-8'))
    ipArr = []
    ips = {}
    for  i  in res['Instances']['Instance']:
            # ECS的ip有两种: 公网ip 和 弹性ip
            if len(i['EipAddress']['IpAddress']) !=0:
                ipArr.append(i['EipAddress']['IpAddress'])
                ips[ i['InstanceId'] ] =  i['EipAddress']['IpAddress']

            if len(i['PublicIpAddress']['IpAddress']) !=0 :
                ipArr.append(i['PublicIpAddress']['IpAddress'][0])
                ips[ i['InstanceId'] ] =  i['PublicIpAddress']['IpAddress'][0]

    if cate=='ip':
        return ipArr
    else:
        return ips
示例#9
0
class PhoneVerify:
    def __init__(self, key_id, secret):
        self.client = AcsClient(key_id, secret, "cn-hangzhou")

    def send_code(self, phone_number):
        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('QuerySendDetails')
        verify_code = self.make_verify_code()
        welcome_str = "欢迎使用柳丁教育系统电话验证,您这次的验证码为: {}".format(verify_code)
        request.add_query_param('RegionId', "cn-hangzhou")
        request.add_query_param('PhoneNumber', phone_number)
        request.add_query_param('SendDate', welcome_str)
        request.add_query_param('PageSize', "1")
        request.add_query_param('CurrentPage', "1")

        response = self.client.do_action(request)
        # python2:  print(response)
        print(str(response, encoding='utf-8'))
        return verify_code

    def make_verify_code(self):
        return str(random.randint(0, 999999)).zfill(6)
示例#10
0
    def do_monitor_5min(self, region_id, image_id):
        client = AcsClient(self.aliyun_token['id'], self.aliyun_token['secret'], region_id)

        describeInstanceMonitorDataRequest = DescribeInstanceMonitorDataRequest.DescribeInstanceMonitorDataRequest()
        describeInstanceMonitorDataRequest.set_InstanceId(image_id)
        describeInstanceMonitorDataRequest.set_accept_format('json')
        startTime = time.strftime("%Y-%m-%dT%H:%M:%SZ", time.gmtime(time.time() - 300))
        endTime = time.strftime("%Y-%m-%dT%H:%M:%SZ", time.gmtime())
        describeInstanceMonitorDataRequest.set_StartTime(startTime)
        describeInstanceMonitorDataRequest.set_EndTime(endTime)
        describeInstanceMonitorDataRequest.set_accept_format('json')

        resp = json_decode(client.do_action(describeInstanceMonitorDataRequest))
        result = {}
        result['text'] = 'monitor %s %s from %s to %s' % (region_id, image_id, startTime, endTime)
        result['attachments'] = []

        for i in sorted(resp['MonitorData']['InstanceMonitorData'], key=lambda k: k.get('TimeStamp', 0)):
            iopsread = '-'
            try:
                iopsread   = i['IOPSRead']
                iopswrite  = i['IOPSWrite']
                bpsread    = i['BPSRead']
                bpswrite   = i['BPSWrite']
                internetTX = i['InternetTX']
                internetRX = i['InternetRX']
                intranetTX = i['IntranetTX']
                intranetRX = i['IntranetRX']
            except KeyError:
                pass
            result['attachments'].append({"title": "%s" % i['TimeStamp'], "text":  "IOPSRead: %s\tIOPSWrite: %s\nBPSRead: %s\tBPSWrite: %s\nInternetTX: %s\tInternetRX: %s\nIntranetTX: %s\tIntranetRX: %s\n" % (iopsread, iopswrite, bpsread, bpswrite, internetTX, internetRX, intranetTX, intranetRX)})

        return result
示例#11
0
def sendmessage(ticketmseeage: str):
    '''
    短信通知,调用阿里云接口
    '''
    message_conf = _get_yaml()
    is_email = message_conf["message_conf"]["is_massage"]
    if is_email:
        accessKeyId = message_conf["message_conf"]["aliyunkeyid"]
        aliyunsecret = message_conf["message_conf"]["aliyunsecret"]
        phonenumbers = message_conf["message_conf"]["phone"]
        trcket = '{"code":"' + ticketmseeage + '"}'
        client = AcsClient(accessKeyId, aliyunsecret, 'cn-hangzhou')
        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('RegionId', 'cn-hangzhou')
        request.add_query_param('PhoneNumbers', phonenumbers)
        request.add_query_param('SignName', '抢票小助手')
        request.add_query_param('TemplateCode', 'SMS_164266405')
        request.add_query_param('TemplateParam', trcket)
        response = client.do_action(request)
        # python2:  print(response)
        print(str(response, encoding='utf-8'))
        try:
            pass
        except Exception as identifier:
            print(u"短信发送失败{}".format(identifier))
示例#12
0
def send_msg_to_phone(phone_num, verify_number):
    """
    将阿里云提供的发送短信demo,封装为函数,这样使用时更加方便
    :param phone_num:
    :param content:
    :return:
    """

    client = AcsClient('短信密钥', '短信密钥', 'cn-hangzhou')

    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('RegionId', "cn-hangzhou")
    request.add_query_param('PhoneNumbers', phone_num)
    request.add_query_param('SignName', "新经资讯网页")
    request.add_query_param('TemplateCode', "SMS_xxxxxxx")
    request.add_query_param('TemplateParam',
                            "{\"code\":\"%s\"}" % verify_number)

    response = client.do_action(request)
    # python2:  print(response)
    print(str(response, encoding='utf-8'))
示例#13
0
def send_sms(phone_numbers, code):
    '''
    发送验证码
    :param phone_numbers: 手机号
    :param code: 验证码
    :return response: 
    '''
    client = AcsClient('', '', '')
    request = CommonRequest()
    request.set_accept_format('json')
    request.set_domain('')
    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('', "")

    # 手机号码,多个号码用英文的逗号分隔开
    # 例如:phone_numbers = '17612835052,15889923535'
    request.add_query_param('PhoneNumbers', phone_numbers)

    request.add_query_param('SignName', "农村社区管理平台")
    request.add_query_param('', "")

    # 验证码, json 格式
    template_param = "{'code': %s }" % code
    request.add_query_param('TemplateParam', template_param)

    response = client.do_action(request)

    return response
示例#14
0
def send_sms(phone_numbers, template_code, sign_name, sms_code):
    """
    发送短信
    :param phone_numbers:
    :param template_code:
    :param sign_name:
    :param sms_code:
    :return:
    """
    client = AcsClient(config.SMS_ACCESS_KEY_ID, config.SMS_ACCESS_KEY_SECRET,
                       REGION)

    request = CommonRequest()
    request.set_accept_format('json')
    request.set_domain(DOMAIN)
    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('RegionId', REGION)
    request.add_query_param('PhoneNumbers', "{}".format(phone_numbers))
    request.add_query_param('SignName', "{}".format(sign_name))
    request.add_query_param('TemplateCode', "{}".format(template_code))
    # request.add_query_param('TemplateParam', "{\"code\":\"" + sms_code + "\"}")
    request.add_query_param('TemplateParam', json.dumps({'code': sms_code}))

    response = client.do_action(request)
    # python2:  print(response)
    print(str(response, encoding='utf-8'))
    return response
示例#15
0
def send_message(mobile, code):
    # client = AcsClient('<accessKeyId>', '<accessSecret>', 'cn-hangzhou')
    client = AcsClient('LTAIjTtYFp6YT8Hi', 'SnBhv9lAno1S1unOYNzhIkD5YA19cf',
                       'cn-hangzhou')  # 改前两个参数
    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('RegionId', "cn-hangzhou")
    request.add_query_param('PhoneNumbers', mobile)
    request.add_query_param('SignName', "豆博士工作室")  # 改这里
    request.add_query_param('TemplateCode', "SMS_151768608")  # 改这里
    code_msg = "{\"code\": " + "\"" + code + "\"}"
    request.add_query_param('TemplateParam', code_msg)

    response = client.do_action(request)
    response = json.loads(response)
    if response['Code'] == "OK":
        return True
    else:
        return False
示例#16
0
def send_sms(phone, code):
    client = AcsClient('LTAI4Fuw8oBKKkQwQV8kjhWB',
                       'eKyJasjVGG0pykNHm3hNf81RzmRKqW', 'cn-hangzhou')

    #phone = '17600950805'
    #aa= '222222'
    code = "{'code':%s}" % (code)
    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('RegionId', "cn-hangzhou")
    request.add_query_param('PhoneNumbers', phone)
    request.add_query_param('SignName', "玉仙人")
    request.add_query_param('TemplateCode', "SMS_178980375")
    request.add_query_param('TemplateParam', code)

    response = client.do_action(request)
    # python2:  print(response)
    print(str(response, encoding='utf-8'))

    return str(response, encoding='utf-8')
示例#17
0
def message_code(reuqest):
    if reuqest.method == 'POST':
        phone = reuqest.POST.get('phone')

        logger.info('请求验证码的用户:{}'.format(phone))

        # 在发送验证码之前需要检查验证码有效期,如果在有效期内不直接发送验证码
        cache_phone_message = cache.get('phone_message:' + phone)

        if cache_phone_message:
            logger.info('redis服务器下该{}用户的验证码为:{},还未过有效期'.format(
                phone, cache_phone_message))
            # 已经获取到缓存的手机号了
            # 准备给前端返回的数据信息
            return JsonResponse({'status': 405, 'msg': '验证码有效期内请勿重复申请'})

        # 生成6位随机验证码(string)
        # 先生成6位随机数列表:random.sample([x for x in string.ascii_letters + string.digits],6
        # 通过join将列表拼接字符串
        # kUEeBr
        # print("".join(random.sample([x for x in string.ascii_letters + string.digits], 6)))
        # 生成6位随机数,准备填充到短信验证码模版的code表中
        six_num = "".join(map(lambda x: random.choice(string.digits),
                              range(6)))
        '''-------------------------------阿里的短信服务器调用代码-----------------------------------------'''
        client = AcsClient(accessKeyId, accessSecret, 'cn-hangzhou')
        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('RegionId', "cn-hangzhou")
        request.add_query_param('PhoneNumbers', phone)
        request.add_query_param('SignName', SignName)
        request.add_query_param('TemplateCode', TemplateCode)
        request.add_query_param('TemplateParam', {'code': six_num})

        response_message = client.do_action(request)
        logger.info('当前手机号:{},验证码:{},发送状态:{}'.format(
            phone, six_num, str(response_message, encoding='utf-8')))
        # python2:  print(response)

        response_message = json.loads(str(response_message, encoding='utf-8'))
        logger.info('短信服务器返回的消息:{}'.format(response_message))
        '''-------------------------------阿里的短信服务器调用代码-----------------------------------------'''

        if response_message['Code'] == 'OK':
            # 如果验证码发送成功,那需要把当前验证码加入到缓存中进行存储,设定短信10分钟内有效
            logger.info('验证码发送成功,有效期10分钟')
            cache.set('phone_message:' + phone, six_num, 60 * 10)
            # 准备给前端返回的数据信息
            return JsonResponse({'status': 200, 'msg': '验证码发送成功'})
        else:
            # 准备给前端返回的数据信息
            return JsonResponse({
                'status': 404,
                'msg': str(response_message['Message'])
            })
示例#18
0
def sent_sms_with_phone(phone_number):
    ans = {}
    # client = AcsClient('LTAICNrMCIXkVv7O', 'XQGp8NBdcs7OBtgY1TrvrTpbZwPUdp', 'default')
    # 短信验证码,@maglith 友情提供
    client = AcsClient('LTAIvOKVFOootzEk', 'psEqWjHnX3B4CCxA6X1g4XiFMCz5BC',
                       'default')

    request = CommonRequest()
    request.set_accept_format('json')
    request.set_domain('dysmsapi.aliyuncs.com')
    request.set_method('POST')
    request.set_protocol_type('https')
    request.set_version('2017-05-25')
    request.set_action_name('SendSms')

    request.add_query_param('PhoneNumbers', str(phone_number))
    request.add_query_param('TemplateCode', "SMS_171113335")
    request.add_query_param('SignName', "实训管理系统")
    # 获取随机验证码
    code = str(get_random_number_str(6))
    request.add_query_param('TemplateParam', "{\"code\": \"%s\"}" % code)

    response = client.do_action(request)

    ans["code"] = code
    ans["data"] = str(response, encoding='utf-8')
    return ans
示例#19
0
def send_msg_to_phone(phone_num, content):
    """
    将阿里云提供的发送短信demo,封装为函数,这样使用时更加方便
    :param phone_num:
    :param content:
    :return:
    """
    client = AcsClient('LTAI4GFkdB5KgW8K98eAd7a3', 'cBVs8OKBjbley1VkqhUgx4c7yu48Z4', 'cn-hangzhou')

    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('RegionId', "cn-hangzhou")
    request.add_query_param('PhoneNumbers', phone_num)
    request.add_query_param('SignName', "小马哥")
    request.add_query_param('TemplateCode', "SMS_204296280")
    request.add_query_param('TemplateParam', "{\"code\":\"%s\"}" % content)

    response = client.do_action(request)
    # python2:  print(response)
    print(str(response, encoding='utf-8'))
示例#20
0
 def put(self, request, *args, **kwargs):
     # !/usr/bin/env python
     # coding=utf-8
     print(request)
     phone = request.data['phone']
     client = AcsClient('LTAI4G4zWvN2AeVYdDvxhivu',
                        'BUtSRanKYPgrDtLacOpkqj5HQi2OGO', 'cn-hangzhou')
     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('RegionId', "cn-hangzhou")
     request.add_query_param('PhoneNumbers', phone)
     request.add_query_param('SignName', "识别管理程序")
     request.add_query_param('TemplateCode', "SMS_190281003")
     seeds = "1234567890"
     random_str = []
     for i in range(4):
         random_str.append(random.choice(seeds))
     round = "".join(random_str)
     request.add_query_param('TemplateParam', {"code": round})
     a = UserPro.objects.get(phone=phone)
     a.sms = round
     a.save()
     response = client.do_action(request)
     # python2:  print(response)
     print(str(response, encoding='utf-8'))
     return HttpResponse(response)
示例#21
0
def send_sms(phone, code):
    client = AcsClient('LTAI4FppavJLWqYjFtZwU1Pf',
                       'oP3BxfEWb0t2rNqykdhay9EQWsAv6s', 'cn-hangzhou')

    code = "{'code':%s}" % (code)
    print('我是codes:', code)
    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('RegionId', "cn-hangzhou")
    request.add_query_param('PhoneNumbers', phone)
    request.add_query_param('SignName', "禹王村")
    request.add_query_param('TemplateCode', "SMS_181556017")
    # request.add_query_param('TemplateParam', {'code': '123456'})
    request.add_query_param('TemplateParam', code)

    response = client.do_action(request)
    # python2:  print(response)
    print(str(response, encoding='utf-8'))

    return str(response, encoding='utf-8')
def UpdateDomainRecord(accessKeyId,accessSecret,NewIP):
    client = AcsClient(accessKeyId,accessSecret, 'default')

    request = CommonRequest()
    request.set_accept_format('json')
    request.set_domain('alidns.aliyuncs.com')
    request.set_method('POST')
    request.set_protocol_type('https') # https | http
    request.set_version('2015-01-09')
    request.set_action_name('UpdateDomainRecord')

    request.add_query_param('RR', 'WWW')
    request.add_query_param('Value', NewIP)
    request.add_query_param('Type', 'A')
    request.add_query_param('RecordId', '')

    response = str(client.do_action(request), encoding = 'utf-8')
    msg=json.loads(response)
    if 'Message' in msg:
        msg = msg['Message']
        content = stamp_to_time() + '  '  + msg + '\n'
        WriteContent('log.conf', content)
    else :
        content = stamp_to_time() + '  ' + 'the ip of demain liuyaoze.cn has change to :'+NewIP + '\n'
        WriteContent('log.conf', content)
示例#23
0
def send_sms(phone, code):
    client = AcsClient('LTAI4Fog9VDu4HPx1eZ64K6W',
                       'cf2fqRQn7Pm4vQbR9DGGe8Xr4nBqeA', 'cn-hangzhou')

    # phone = '17600950805'
    # aa= '222222'
    code = "{'code':%s}" % (code)
    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('RegionId', 'cn-hangzhou')
    request.add_query_param('PhoneNumbers', phone)
    request.add_query_param('SignName', '北网人工智能')
    request.add_query_param('TemplateCode', 'SMS_181545706')
    request.add_query_param('TemplateParam', code)

    response = client.do_action(request)
    # python2:  print(response)
    print(str(response, encoding='utf-8'))

    return str(response, encoding='utf-8')
示例#24
0
class Aliyun:

    def __init__(self):
        appid = settings.SMS.get('appid', None)
        secret = settings.SMS.get('secret', None)
        self.client = AcsClient(appid, secret, 'default')

    def send_sms(self, mobile, sign, template, data=None):
        """
        发送短信

        mobile: 手机号码
        sign: 短信签名
        template: 短信模板
        data: 短信内容
        """
        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('RegionId', "default")
        request.add_query_param('PhoneNumbers', mobile)
        request.add_query_param('SignName', sign)
        request.add_query_param('TemplateCode', template)
        #request.add_query_param('TemplateParam', '{"code":"%s"}'%content)

        response = self.client.do_action(request)

        return response
示例#25
0
def send_sms(phone, code):
    # !/usr/bin/env python
    # coding=utf-8

    from aliyunsdkcore.client import AcsClient
    from aliyunsdkcore.request import CommonRequest
    client = AcsClient('LTAIznxYom8fTE24', '4eTEzXNBG3VW8iRfPZ1M8CDusiXDWU', 'cn-hangzhou')

    code = "{'code':'%s'}" % (code)
    # print(code)
    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('RegionId', "cn-hangzhou")
    request.add_query_param('PhoneNumbers', phone)
    request.add_query_param('SignName', "关家实践组")
    request.add_query_param('TemplateCode', "SMS_172205443")
    request.add_query_param('TemplateParam', code)

    response = client.do_action(request)
    # python2:  print(response)
    # print(str(response, encoding='utf-8'))
    return str(response, encoding='utf-8')
示例#26
0
def send_sms(phone, code):
    client = AcsClient('LTAIEx3Gbdbceg2C', 'MsCoWUm3x2iXaIcvtqhQLi9yj6nHxX',
                       'cn-hangzhou')

    # phone = '17600950805'
    # aa= '222222'
    code = "{'code':%s}" % (code)
    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('RegionId', 'cn-hangzhou')
    request.add_query_param('PhoneNumbers', phone)
    request.add_query_param('SignName', '北网实训组')
    request.add_query_param('TemplateCode', 'SMS_165745016')
    request.add_query_param('TemplateParam', code)

    response = client.do_action(request)
    # python2:  print(response)
    print(str(response, encoding='utf-8'))

    return str(response, encoding='utf-8')
示例#27
0
def send_msg_to_phone(phone_num, content):
    """
    将阿里云提供的发送短信demo,封装为函数,这样使用时更加方便
    :param phone_num:
    :param content:
    :return:
    """
    client = AcsClient('LTAI4GJcCBqAEs63nNVNsJ63',
                       'hZXTnGJvkT54E6bqYH4jwAJO5Tc9Mx', 'cn-hangzhou')

    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('RegionId', "cn-hangzhou")
    request.add_query_param('PhoneNumbers', phone_num)
    request.add_query_param('SignName', "dong4716138")
    request.add_query_param('TemplateCode', "SMS_167532197")
    request.add_query_param('TemplateParam', "{\"code\":\"%s\"}" % content)

    response = client.do_action(request)
    # python2:  print(response)
    print(str(response, encoding='utf-8'))
def dataworks_api_create_adhoc_dag(accesskey_id, accesskey_secret, region_id, projectname, flowname, bizdate='2018-07-25 00:00:00'):
    client = AcsClient(accesskey_id, accesskey_secret, region_id)

    request = CommonRequest()
    request.set_accept_format('json')
    request.set_domain('dataworks.aliyuncs.com')
    request.set_method('POST')
    request.set_protocol_type('https') # https | http
    request.set_version('2018-06-01')
    request.set_action_name('CreateManualDag')
    
    request.add_query_param('ProjectName', projectname)
    request.add_query_param('FlowName', flowname)
    request.add_query_param('Bizdate', bizdate)

    response = client.do_action(request)
    #pprint(response)
    js = json.loads(response)
    status = 'Failed and unknown'
    dag_id = '0'
    if ('ReturnCode' in js):
        if (js['ReturnCode'] == '600011'):
            status = 'Failed and Bizdate should be in [2019-03-20 00:00:00 format]'
        if (js['ReturnCode'] == '0') and ('ReturnValue' in js): 
            status = 'Succeed'
            dag_id = js['ReturnValue']
    return js, status, dag_id
示例#29
0
def BeginSend(PhoneNum, AccessKeyId, AccessSecret, SignName, TemplateCode):

    client = AcsClient(AccessKeyId, AccessSecret, 'cn-hangzhou')
    # 生成验证码
    authCode = str(random.randint(1000, (10**VerificationLen - 1)))
    dict = {'code': authCode}
    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('RegionId', "cn-hangzhou")
    request.add_query_param('PhoneNumbers', PhoneNum)
    request.add_query_param('SignName', SignName)
    request.add_query_param('TemplateCode', TemplateCode)
    # request.add_query_param('TemplateParam', "{'code':'5648'}")
    request.add_query_param('TemplateParam', str(dict))
    # 请求
    response = client.do_action(request)
    cjson = json.loads(str(response, 'utf-8'))
    cjson['authCode'] = authCode
    print(json.dumps(cjson))
    return cjson
示例#30
0
    def post(self, request, *args, **kwargs):
        data = request.data
        Phone = data['Phone']
        code = get_random_code(len=6)
        body = {"code": code}
        aliyun_msg = ''
        from aliyunsdkcore.client import AcsClient
        from aliyunsdkcore.request import CommonRequest
        client = AcsClient('LTAINoeFiTtb5Ldh',
                           'FxOZ9pfmLB9LwIBABsauu8Md8dJjn7',
                           'cn-hangzhou')  #短信子账户
        try:
            request = CommonRequest()
            request.set_accept_format('json')
            request.set_domain('dysmsapi.aliyuncs.com')
            request.set_method('POST')
            request.set_protocol_type('http')  # https | http
            request.set_version('2017-05-25')
            request.set_action_name('SendSms')

            request.add_query_param('RegionId', "cn-hangzhou")
            request.add_query_param('PhoneNumbers', Phone)
            request.add_query_param('SignName', "DeepDraw深绘智能")
            request.add_query_param('TemplateCode', "SMS_170346491")
            request.add_query_param('TemplateParam', str(body))

            response = client.do_action(request)
            aliyun_msg = str(response, encoding='utf-8')

            test_obj = UserInfo.objects.filter(user_name=data['Phone']).first()
            if not test_obj:
                obj = UserInfo.objects.create(
                    user_name=Phone,
                    user_type=1,
                    user_detil='手机注册',
                    password=code,
                )

            else:
                UserInfo.objects.filter(user_name=Phone).update(
                    user_name=Phone, password=code)
                obj = UserInfo.objects.filter(user_name=Phone).first()

            ret = {
                'code': 1001,
                'msg': '获取验证码成功',
                #'random_code':code, #调试时返回
                'user_id': obj.id,
                'aliyun_msg': aliyun_msg,
            }
        except:
            ret = {
                'code': 1000,
                'msg': '获取验证码失败',
                'aliyun_msg': aliyun_msg,
            }
        return JsonResponse(ret)
示例#31
0
def handler(event, context):
    logger = logging.getLogger()
    logger.info('hello world')

    creds = context.credentials
    sts_token_credential = StsTokenCredential(creds.accessKeyId,
                                              creds.accessKeySecret,
                                              creds.securityToken)

    #logger.info('creds.accessKeyId '+creds.accessKeyId)
    #logger.info('creds.accessKeySecret '+creds.accessKeySecret)
    #logger.info('creds.securityToken '+creds.securityToken)

    client = AcsClient(credential=sts_token_credential)
    #Regions in which vms should be decribed and checked if they belong to default SG

    regions = ['cn-beijing', 'cn-shanghai', 'ap-southeast-1']
    #regions = ['cn-shanghai']
    toMerge = []
    for eachReg in regions:
        request = CommonRequest()
        request.set_accept_format('json')
        request.set_domain('ecs.aliyuncs.com')
        request.set_method('GET')
        request.set_protocol_type('https')
        request.set_version('2014-05-26')
        request.set_action_name('DescribeInstances')
        request.add_query_param('RegionId', eachReg)
        try:
            response = client.do_action(request)
        except ServerException as e:
            print(e.get_http_status(), e.get_error_code(), e.get_error_msg())
            raise e
        vms = str(response, encoding='utf-8')

        vmsJson = json.loads(vms)
        instances = vmsJson['Instances']['Instance']

        #instancesJson = json.loads(instances)

        for instance in instances:

            zoneid = instance['ZoneId']
            instanceId = instance['InstanceId']
            instanceName = instance['InstanceName']

            #logger.info('zoneid '+str(zoneid))
            logger.info('instanceName ' + str(instanceName) + str(' from ') +
                        str(eachReg))
            #logger.info('tempInstances '+str(tempInstances))

            #toMerge.extend(tempInstances)
            #instances=json.dumps(toMerge)

    return 'hello world'