背景:AWS在遇到系统升级、系统故障等问题的时候,会在其官方论坛发布通知,并同步到RSS

前言:我们在项目中遇到几次AWS的RDS出现故障导致系统受影响,当系统故障时,我们的监控系统会发送一堆告警出来,提示数据库异常。

正常来讲,AWS的RDS很少出现问题,所以我们排查问题的重心就在我们自己的系统中,结果也没有找到问题,最后在AWS中开启技术支持才知道是RDS的问题。

其实,当RDS出现技术性故障的时候,AWS会在论坛发布通知。作为运维,我们不希望每天都去刷论坛查看是否有新的公告,如果有一种方式,当论坛发布通知时,自动提醒我们就好了。为此,我们研究了一种办法,即订阅AWS论坛的RSS,当论坛有新的通知时,RSS订阅会更新,我们的程序定时去获取RSS最新信息即可。

有了这套程序,当数据库异常时,我们就可以判断时AWS的RDS异常导致的,还是我们自己的程序导致的。

实现代码如下:

注意:RSS中的时间为UTC时间,故脚本中获取当前时间使用的是datetime.datetime.utcnow()

#auther by zls
#_*_coding:utf-8_*_
import feedparser
import datetime
#获取RDS论坛的通知
d = feedparser.parse('https://forums.aws.amazon.com/rss/rssannounce.jspa?forumID=60')
#解析通知
for item in d.entries:
#获取论坛通知的发布事件
rss_day = item.jf_date
#获取本地事件
local_day = datetime.datetime.utcnow().strftime('%b %d, %Y')
#判断该通知是否为今天发布的
if rss_day == local_day:
#如果是今天发布的,可以定义您自己的通知方式,这里只是打印出来
print "公告标题:%s" %(item.title)
print "公告链接:%s" %(item.link)
print "公告简介:%s" %(item.description)
print "公告时间:%s" %(item.jf_date)

【AWS】订阅AWS论坛的RSS消息获取最新公告的更多相关文章

  1. 订阅Jenkins的邮件列表,获取最新的信息

    进入https://jenkins.io/content/mailing-lists/ 点击感兴趣的话题 选择[archive]跳转到谷歌讨论组 最后,点击左上角的[Subscribe]即可加入Goo ...

  2. shell命令获取最新文件的名称

    最近有一个需求,在部署游戏战场服时,从程序包到部署需要做一些本地化的操作,手工操作费时费力,故写一个shell脚本,一键部署. 遇到的问题是每次要部署最新的程序包,因此需要shell命令获取最新的文件 ...

  3. Android网络开发之实时获取最新数据

    在实际开发中更多的是需要我们实时获取最新数据,比如道路流量.实时天气信息等,这时就需要通过一个线程来控制视图的更新. 示例:我们首先创建一个网页来显示系统当前的时间,然后在Android程序中每隔5秒 ...

  4. IOS 获取最新设备型号方法

    1.IOS 获取最新设备型号方法列表最新对照表:http://theiphonewiki.com/wiki/Models方法: #import "sys/utsname.h” struct ...

  5. SQL 去除重复、获取最新记录

    应用中常会有需要去除重复的记录,或者获取某些最新记录(如:每个用户可以答题多次,每次答题时间不同,现在要获取所有用户的最新答题记录,即每个用户取最新的一条) 使用group 和max 即可实现上述功能 ...

  6. git拉取远程分支并创建本地分支和Git中从远程的分支获取最新的版本到本地

    git拉取远程分支并创建本地分支 一.查看远程分支 使用如下Git命令查看所有远程分支: git branch -r 二.拉取远程分支并创建本地分支 方法一 使用如下命令: git checkout ...

  7. [Jacky] 解决Ext.Net GridPanel 选择的行数据刷新后不能获取最新值

    选择GridPanel中一行数据,当变更数据时并重新刷新之后不能获取最新值,需通过如下方式获取: var internalId = gridPanel.getSelectionModel().getL ...

  8. Git中从远程的分支获取最新的版本到本地

    Git中从远程的分支获取最新的版本到本地有这样2个命令: 1. git fetch:相当于是从远程获取最新版本到本地,不会自动merge    git fetch origin mastergit l ...

  9. Swift - 文本输入框内容改变时响应,并获取最新内容

    1,问题描述 有时我们开发的时候需要先把“确认”按钮初始设置为不可用,当文本框中输入文字以后,再将输入按钮变为可用. 2,实现原理 (1)要检测文本框内容的变化,我们需要让新界面的Controller ...

随机推荐

  1. Atitit. 二进制数据ascii表示法,与base64编码解码api 设计标准化总结java php c#.net

    Atitit. 二进制数据ascii表示法,与base64编码解码api 设计标准化总结java php c#.net 1. Base64编码, 1 1.1. 子模式 urlsafe Or  url  ...

  2. NHibernate Transformers.AliasToEntityMap 返回Hashtable

    string query = "select a.CustomerName as CustomerName, b.ProductName as ProductName from Custom ...

  3. cf #363 a

    A. Launch of C time limit per test 2 seconds memory limit per test 256 megabytes input standard inpu ...

  4. Mockito - Wanted but not invoked: Actually, there were zero interactions with this mock

    要测试的类:IndexController.java 代码: @Mock private TemplateWrapper templateWrapper = spy(new TemplateWrapp ...

  5. mac下安装phpstorm主题

    在<推荐一个phpstorm主题和字体>中介绍了window下如何安装phpstorm主题,这里我们在介绍一下如何在MAC下安装phpstorm主题. 安装方法和window类似,只是需要 ...

  6. 这是一篇markdown测试博客

    欢迎使用Markdown编辑器写博客 本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦: Markdown和扩展Markdown简洁的语法 代码块高亮 图片链接 ...

  7. NERDTree 快捷件

    key description ctrl+e 打开/关闭文件浏览器 j 向下移动 k 向上移动 o 小写字母o,打开文件或者展开目录 shift+c 即大写字母C,当前选中目录作为根目录 u 上一层目 ...

  8. Tensorflow如何选择GPU

    CUDA_VISIBLE_DEVICES=1 python run.py or import os os.environ["CUDA_VISIBLE_DEVICES"]=" ...

  9. JSP接口浅析

    一.tree型关系 JSP页面继承了org.apache.jasper.runtime.HttpJspBase抽象类并实现了org.apache.jasper.runtime.JspSourceDep ...

  10. kafka 集群--3个broker 3个zookeeper创建实战

    准备工作: 1. 准备3台机器,IP地址分别为:192.168.0.10,192.168.0.11,192.168.0.12 2. 下载kafka稳定版本,我的版本为:kafka_2.9.2-0.8. ...