【AWS】订阅AWS论坛的RSS消息获取最新公告
背景: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消息获取最新公告的更多相关文章
- 订阅Jenkins的邮件列表,获取最新的信息
进入https://jenkins.io/content/mailing-lists/ 点击感兴趣的话题 选择[archive]跳转到谷歌讨论组 最后,点击左上角的[Subscribe]即可加入Goo ...
- shell命令获取最新文件的名称
最近有一个需求,在部署游戏战场服时,从程序包到部署需要做一些本地化的操作,手工操作费时费力,故写一个shell脚本,一键部署. 遇到的问题是每次要部署最新的程序包,因此需要shell命令获取最新的文件 ...
- Android网络开发之实时获取最新数据
在实际开发中更多的是需要我们实时获取最新数据,比如道路流量.实时天气信息等,这时就需要通过一个线程来控制视图的更新. 示例:我们首先创建一个网页来显示系统当前的时间,然后在Android程序中每隔5秒 ...
- IOS 获取最新设备型号方法
1.IOS 获取最新设备型号方法列表最新对照表:http://theiphonewiki.com/wiki/Models方法: #import "sys/utsname.h” struct ...
- SQL 去除重复、获取最新记录
应用中常会有需要去除重复的记录,或者获取某些最新记录(如:每个用户可以答题多次,每次答题时间不同,现在要获取所有用户的最新答题记录,即每个用户取最新的一条) 使用group 和max 即可实现上述功能 ...
- git拉取远程分支并创建本地分支和Git中从远程的分支获取最新的版本到本地
git拉取远程分支并创建本地分支 一.查看远程分支 使用如下Git命令查看所有远程分支: git branch -r 二.拉取远程分支并创建本地分支 方法一 使用如下命令: git checkout ...
- [Jacky] 解决Ext.Net GridPanel 选择的行数据刷新后不能获取最新值
选择GridPanel中一行数据,当变更数据时并重新刷新之后不能获取最新值,需通过如下方式获取: var internalId = gridPanel.getSelectionModel().getL ...
- Git中从远程的分支获取最新的版本到本地
Git中从远程的分支获取最新的版本到本地有这样2个命令: 1. git fetch:相当于是从远程获取最新版本到本地,不会自动merge git fetch origin mastergit l ...
- Swift - 文本输入框内容改变时响应,并获取最新内容
1,问题描述 有时我们开发的时候需要先把“确认”按钮初始设置为不可用,当文本框中输入文字以后,再将输入按钮变为可用. 2,实现原理 (1)要检测文本框内容的变化,我们需要让新界面的Controller ...
随机推荐
- Atitit. 二进制数据ascii表示法,与base64编码解码api 设计标准化总结java php c#.net
Atitit. 二进制数据ascii表示法,与base64编码解码api 设计标准化总结java php c#.net 1. Base64编码, 1 1.1. 子模式 urlsafe Or url ...
- NHibernate Transformers.AliasToEntityMap 返回Hashtable
string query = "select a.CustomerName as CustomerName, b.ProductName as ProductName from Custom ...
- cf #363 a
A. Launch of C time limit per test 2 seconds memory limit per test 256 megabytes input standard inpu ...
- Mockito - Wanted but not invoked: Actually, there were zero interactions with this mock
要测试的类:IndexController.java 代码: @Mock private TemplateWrapper templateWrapper = spy(new TemplateWrapp ...
- mac下安装phpstorm主题
在<推荐一个phpstorm主题和字体>中介绍了window下如何安装phpstorm主题,这里我们在介绍一下如何在MAC下安装phpstorm主题. 安装方法和window类似,只是需要 ...
- 这是一篇markdown测试博客
欢迎使用Markdown编辑器写博客 本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦: Markdown和扩展Markdown简洁的语法 代码块高亮 图片链接 ...
- NERDTree 快捷件
key description ctrl+e 打开/关闭文件浏览器 j 向下移动 k 向上移动 o 小写字母o,打开文件或者展开目录 shift+c 即大写字母C,当前选中目录作为根目录 u 上一层目 ...
- Tensorflow如何选择GPU
CUDA_VISIBLE_DEVICES=1 python run.py or import os os.environ["CUDA_VISIBLE_DEVICES"]=" ...
- JSP接口浅析
一.tree型关系 JSP页面继承了org.apache.jasper.runtime.HttpJspBase抽象类并实现了org.apache.jasper.runtime.JspSourceDep ...
- 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. ...