您现在的位置是:首页 > 文章详情

使用阿里云Serverless函数计算实现HTTP健康检查+故障短信通知

日期:2019-04-21点击:395

使用阿里云Serverless函数计算实现HTTP健康检查+故障短信通知

应用场景

定时对网站/API进行请求,根据请求响应判断服务是否可用,网站是否存在宕机,当发生宕机时,发送短信通知管理员.

技术使用

运行平台:阿里云函数计算
开发语言:Python3(小功能,精简,开发快,可在阿里云上在线编辑代码)
其它:阿里云短信接口

为何选用函数计算?

  1. 无需关注运维,仅需要编写核心代码,一个python脚本就够了(阿里云上可在线编辑代码,本地开发环境都无需搭建)
  2. 定时进行检测,只需要选用函数计算的“定时触发器”即可
  3. 根据代码的调用次数和运行时间计费(相对价格应该是非常低的)

结构图

20190423103532

过程

  1. 阿里云上开通函数计算服务
  2. 创建服务:函数计算-创建服务:httpchk
  3. 创建函数:语言Python-空白函数
  4. 创建函数:触发器-定时触发器:httpchk-trigger-时间间隔1分钟
  5. 创建函数:函数名称:httpchk-fc,
  6. 创建函数:代码方式:在线编辑
  7. 创建函数:函数执行内存:128MB(足足够用)

函数代码:

# -*- coding: utf-8 -*- import logging import requests from aliyunsdkcore.client import AcsClient from aliyunsdkcore.request import CommonRequest # 待检测的网址,仅支持GET请求 urls = ["https://www.baidu.com","http://www.mtain.top"] # 接收短信通知的手机号码 phone = "180000000" # 阿里云短信接口相关信息 accessKeyId = 'xxxx' accessSecret = 'xxxx' signName = 'xxxxx' templateCode = 'SMS_xxxx' logger = logging.getLogger() def handler(event, context): for url in urls: do_httpchk(url) def do_httpchk(url): logger.info('检测网站:{}'.format(url)) try: req=requests.get(url) logger.info('网站:{}响应正常,返回数据长度:{}'.format(url,len(req.text))) except Exception as e: logger.error('网站:{}服务异常,{}'.format(url,e)) send_sms(url) def send_sms(url): client = AcsClient(accessKeyId, accessSecret, 'default') 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('PhoneNumbers', phone) request.add_query_param('SignName', signName) request.add_query_param('TemplateCode', templateCode) # 阿里云短信变量 [a-zA-Z0-9] 且 长度小于20 web_name = url.replace('https://','').replace('http://','').replace('.','-')[0:18] request.add_query_param('TemplateParam', '{"code":"'+web_name+'"}') response = client.do_action(request) logger.info('Send SMS Response:'+str(response, encoding = 'utf-8'))
原文链接:https://yq.aliyun.com/articles/699393
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章