如何使用Serverless函数计算实现HTTP健康检查+故障短信通知
发表于:2024-10-03 作者:千家信息网编辑
千家信息网最后更新 2024年10月03日,本篇文章给大家分享的是有关如何使用Serverless函数计算实现HTTP健康检查+故障短信通知,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看
千家信息网最后更新 2024年10月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安全错误
数据库的锁怎样保障安全
sql数据库建立表怎么设置
云服务器如何下载文件到本地
想成立个工作室主要从事软件开发
江苏c语言软件开发服务费
重庆软件开发联系电话
cbm怎么导入数据库
开福区政府网络安全招标
瞬联软件开发笔试题
索数据库索引
租车数据库设计
数据库的建立怎么做
王者登不上怎么看服务器
数据库重执行日志
济南app软件开发怎么学
打印服务器和局域网共享哪个稳定
公司网络安全意识培训总结
药智网数据库收费
在数据库查询某一个字段在哪张表
个人电脑需要使用数据库吗
叛逆赛车无法连接服务器
景洪管理软件开发
数据库基础之查询语句
武汉软件开发微信群
大庆市网络安全宣传周
蔚来引擎互联网科技
饥荒怎么看服务器历史
网络安全渗透基础
广东华为鲲鹏服务器
从事软件开发需要什么证件
app服务器怎么修复