如何使用Serverless函数计算实现HTTP健康检查+故障短信通知
发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,本篇文章给大家分享的是有关如何使用Serverless函数计算实现HTTP健康检查+故障短信通知,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看
千家信息网最后更新 2025年02月02日如何使用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安全错误
数据库的锁怎样保障安全
南工院计算机网络技术订单班
广工数据库实验安全性
网络安全和信息化工作举措
软件开发关键技术是什么
高度重视网络安全工作的意义
母乳数据库 作用
不同数据库同步时间
魔兽世界服务器人最少
成都网络安全公司有哪些
河南数据库防护箱代理商
北京crm软件开发工程师
软件开发外包进腾讯
提升数据网络安全融合能力图片
cetv软件开发公司
正保数据库试用账号
spss数据库连接失败
智慧物流通信与网络技术
网络安全漏洞的论文
编辑图片数据库
我的世界服务器自动刷菜机
下关区软件开发技术项目实训中心
网络安全工程师 掌握什么
r420服务器阵列卡
软件开发的生命周期开发过程
bak数据库怎么导入
比尔盖茨为软件开发做出了哪些
迅腾网络安全知识
海康软件开发面经
南瑞软件开发干什么的
软件开发所用技术