Files
box-secondary-development-3/快速接收设备告警/http-server-demo/README.md

2.9 KiB
Raw Blame History

HTTP告警推送

http-server-demo 分为三个文件夹。

  1. headers http请求头的demo代码
  2. http-server http服务端接收告警推送(无token版本)
  3. http-server-token http服务端接收告警推送(有token版本)

headers

如果需要将盒子产生的告警推送到您自建平台,并且你的平台需要验证token,则需要用到该文件夹下的headers_demo.py文件。 你可自行修改headers_demo.py文件,并将此文件上传到盒子平台的【数据推送】-【告警】-【HTTP】-【配置token】。 headers_demo.py文件说明:

  • 类名必须为Headers,继承BaseHeaders类。BaseHeaders类通过api.http导入

    from api.http import Headers as BaseHeaders
    
  • 定义三个实例变量:get_headers_urltimeoutinterval

    get_headers_url:指定获取tokenURL地址。

    timeout:指定获取token的超时时间(单位:秒)。

    interval:定时刷新headers的时间间隔(单位:秒)。

    class Headers(BaseHeaders):
        def __init__(self):
            self.get_headers_url = None
            self.timeout = 5  
            interval = 60 * 10
            super().__init__(interval)
    
  • 必须实现_generate_headers方法。返回请求头字典headers。返回示例:

    {'authorization': 'Bearer abcdefghijklmnopqrstuvwxyz'}
    
  • 完整实例如下:

    import requests
    from api.http import Headers as BaseHeaders
    from logger import LOGGER
    
    class Headers(BaseHeaders):
        def __init__(self):
            self.get_headers_url = None
            self.timeout = 5
            interval = 60 * 10
            super().__init__(interval)
    
        def _generate_headers(self):
            try:
                headers = {
                    'authorization': 'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkXXX'
                }
                return headers
            except:
                LOGGER.exception('_generate_headers')
            return None
    

http-server

该文件夹为http服务端代码,提供pythonjava代码。它主要用于接收盒子的http告警推送。如果您需要验证盒子的http推送功能是否正常,可使用此文件夹进行测试。 运行该文件夹下的代码,即可开启一个http服务端。在盒子平台的【数据推送】-【告警】-【HTTP】中启用推送管理并填写http服务端地址,即可开启推送功能。

http-server-token

此文件夹同http-server文件夹,只是增加了token验证功能。

你首先需把其下的headers_demo1.pyheaders_demo2.py文件上传到盒子平台的【数据推送】-【告警】-【HTTP】-【配置TOKEN】。 headers_demo1.py通过调用url接口获取token。(盒子必须可以ping通该url文件中的get_headers_url变量为http服务端URL) headers_demo2.py固定token。