如何使用Serverless函数计算实现HTTP健康检查+故障短信通知
发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,本篇文章给大家分享的是有关如何使用Serverless函数计算实现HTTP健康检查+故障短信通知,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看
千家信息网最后更新 2025年12月03日如何使用Serverless函数计算实现HTTP健康检查+故障短信通知
本篇文章给大家分享的是有关如何使用Serverless函数计算实现HTTP健康检查+故障短信通知,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
使用Serverless函数计算实现HTTP健康检查+故障短信通知
应用场景
定时对网站/API进行请求,根据请求响应判断服务是否可用,网站是否存在宕机,当发生宕机时,发送短信通知管理员.
技术使用
运行平台: 阿里云函数计算
开发语言: Python3(小功能,精简,开发快,可在阿里云上在线编辑代码)
其它: 阿里云短信接口
为何选用函数计算?
无需关注运维,仅需要编写核心代码,一个python脚本就够了(阿里云上可在线编辑代码,本地开发环境都无需搭建)
定时进行检测,只需要选用函数计算的"定时触发器"即可
根据代码的调用次数和运行时间计费(相对价格应该是非常低的)
结构图
过程
阿里云上开通函数计算服务
创建服务: 函数计算-创建服务:
httpchk创建函数: 语言Python-空白函数
创建函数: 触发器-定时触发器:
httpchk-trigger-时间间隔1分钟创建函数: 函数名称:httpchk-fc,
创建函数: 代码方式:在线编辑
创建函数: 函数执行内存:128MB(足足够用)
函数代码:
# -*- coding: utf-8 -*-import loggingimport requestsfrom aliyunsdkcore.client import AcsClientfrom aliyunsdkcore.request import CommonRequestfrom requests.adapters import HTTPAdapter# 出错时,重试2次,一共执行3次request = requests.Session()request.mount('http://', HTTPAdapter(max_retries=2))request.mount('https://', HTTPAdapter(max_retries=2))# 待检测的网址,仅支持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 = request.get(url, timeout=5) 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'))以上就是如何使用Serverless函数计算实现HTTP健康检查+故障短信通知,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。
函数
短信
阿里
代码
网站
服务
健康
故障
检查
触发器
在线
开发
检测
接口
时间
更多
知识
篇文章
语言
长度
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
汽车行业软件开发课程
软件开发面试官的经典问题
wifi网络安全选哪个
广东企业电子仓库软件开发
湖北商业软件开发收费
恩科网络技术
猫代理服务器
百万级数据库什么意思
聚合推流服务器
软件开发经理 招聘信息
网络安全的防护门
企业网络安全安装
出国打工 软件开发
天津软件开发培训机构有哪些
开发的软件怎么安装在服务器上
国家统计局国家数据库指标
单位网络安全保密管理改进
网络安全数据大会
《网络安全法》的意义包括_
dbms小型数据库
软件开发工作岗位心得体会
服务器excel管理
韩顺平 满汉楼 数据库
数据库软件安装为何失败
海天味业的数据库
软件开发需要很多的东西
量子跃动数据网络技术公司
电信网络安全工作总结
标题 连接到服务器
云南白药软件开发测试