背景: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. C6455 CSL_EMIF详解

    C6455 CSL_EMIF详解 原网址http://www.61ic.com/Article/C6000/C64X/201303/47507.html C6455CSL详解 和DSP6455的EMI ...

  2. ZooKeeper_基础知识学习

    ZooKeeper是Hadoop的开源子项目(Google Chubby的开源实现),它是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护.命名服务.分布式同步.组服务等. Zookee ...

  3. Navicat for MySQL 之数据库迁移

    1.将数据库下的表迁移出来 2.将表全部迁入另一个数据库 重新连接数据库看看吧!

  4. Spring Boot全日志设置

    说在前面 这里日志分两种.一种是tomcat的输出(系统)日志,一种是自己定义的日志. 系统日志设置 目标 当springboot接收到请求时记录日志到文件中 实现 你只需要在你的绿叶applicat ...

  5. iOS开发UITableViewCell的选中时的颜色设置(转)

    iOS开发UITableViewCell的选中时的颜色设置   1.系统默认的颜色设置 //无色 cell.selectionStyle = UITableViewCellSelectionStyle ...

  6. int和Integer差别

    种原始数据类型之中的一个. Java为每一个原始类型提供了封装类.Integer是java为int提供的封装类. 原始数据类型包含byte.int.char.long.float.double.boo ...

  7. error: memcached support requires ZLIB. Use --with-zlib-dir=<DIR> to specify the prefix where ZLIB

    yum install zlib-devel

  8. php 、asp、 java、 c#、 delphi之间的语言对照

    PHP是一种跨平台的server端的嵌入式脚本语言.它大量地借用C,Java和Perl语言的语法, 并耦合PHP自己的特性,使WEB开发人员能够高速地写出动态产生页面. 它支持眼下绝大多数数据库. 另 ...

  9. 调试node.js应用--node-inspector

    如果你在编写Node.js代码,node-inspector是必备之选,比Node.js的内置调试器好出许多.使用起来跟Chrome的javascript调试器很相似. 使用npm安装: $ npm ...

  10. jQuery.getJSON()方法小记

    今天看了下jQquery中的getJSON()方法,做点小结: 原型: jQuery.getJSON( url [, data ] [, success(data, textStatus, jqXHR ...