中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用Serverless函數計算實現HTTP健康檢查+故障短信通知

發布時間:2021-12-30 10:07:49 來源:億速云 閱讀:136 作者:柒染 欄目:云計算

本篇文章給大家分享的是有關如何使用Serverless函數計算實現HTTP健康檢查+故障短信通知,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

使用Serverless函數計算實現HTTP健康檢查+故障短信通知

應用場景

定時對網站/API進行請求,根據請求響應判斷服務是否可用,網站是否存在宕機,當發生宕機時,發送短信通知管理員.

技術使用

運行平臺: 阿里云函數計算

開發語言: Python3(小功能,精簡,開發快,可在阿里云上在線編輯代碼)

其它: 阿里云短信接口

為何選用函數計算?

  1. 無需關注運維,僅需要編寫核心代碼,一個python腳本就夠了(阿里云上可在線編輯代碼,本地開發環境都無需搭建)

  2. 定時進行檢測,只需要選用函數計算的“定時觸發器”即可

  3. 根據代碼的調用次數和運行時間計費(相對價格應該是非常低的)

結構圖

過程

  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
from 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健康檢查+故障短信通知,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

鄱阳县| 泰州市| 阳西县| 安陆市| 桂阳县| 临夏市| 西华县| 方山县| 本溪市| 南宫市| 都兰县| 杭锦后旗| 灵丘县| 兰考县| 吉林市| 嘉黎县| 嘉荫县| 蒙自县| 高邑县| 丰顺县| 灵台县| 固安县| 海宁市| 内江市| 高清| 阜城县| 寿宁县| 南宁市| 怀化市| 贵溪市| 焦作市| 鄂州市| 古田县| 永济市| 阿图什市| 加查县| 剑川县| 巧家县| 大丰市| 杂多县| 宜春市|