Application Repository一键启用微信告警通知

helloworld_94734536
• 阅读 1333

前言

我们在使用云平台时偶尔会在管理员邮箱中收到系统发出的告警通知,如EC2维护信息,这些邮件很容易淹没在收件箱中,没有得到及时处理。另外对于重要的应用我们可能会在CloudWatch设置一些指标告警并进行邮件通知。如果这些都可以发到微信等即时通信软件,就比邮件通知好多了,毕竟很多人都习惯在即时通信软件上查看消息。具体实现原理并不复杂,我们知道微信等即时通信工具均提供了消息接口。第三方应用获取授权后,通过调用这些接口即可往客户端发送消息。在云平台上可以在EventBridge/Cloudwatch Event中配置事件规则,即可以触发一个Lambda运行微信接口调用的处理逻辑,通过Serverless是可以简单地实现这个通知告警机制的。在这个教程里,我们会介绍如何在Serverless Application Repository部署一个微信告警应用,只要将自己微信接口的三个相关参数配置进去,就可以一键启用微信告警功能了。如果有一些新的告警事件想推送到微信,也可以在控制台上设置好规则,不用去修改Lambda相关代码。

教程说明 第1步 - 进入Serverless Application Repository控制台

选择服务 > Serverless Application Repository 以进入 Serverless Application Repository 管理控制台。 选择 ”可用应用程序“ 并选择 “公用应用程序”, 在搜索框中输入 “wechat” ,并勾选 “显示用于创建自定义 IAM 角色或资源策略的应用程序”, 找到 “WeChat-Notifer” 应用程序

第2步 - 部署应用

在“应用程序设置“ 部分,输入与微信接口相关的三个参数。 这三个参数可在企业微信中创建应用后获得:

a, 首先登录企业微信管理后台,创建一个新的应用,并记录 AgentId 和 Secret

b, 记录企业ID

c, 输入完毕后点击”部署“即可在后台进行部署

第3步 - 检查应用部署情况

a, 这个应用会自动部署一系列的组件,涉及的 AWS 服务包括 EventBridge, SNS, Lambda 和 Secrets Manager 等,为方便演示EventBridge功能,这个应用部署时创建了两个EventBridge的Rule,一个是捕获EC2的状态变化事件(如开关机),另一个是捕获AWS健康事件(如EC2计划维护事件)。

b, 部署完成后,可以看到相关部署出来的资源。接下来我们可以测试一下微信通知功能是否正常工作,点击 “WeChatNotifierSNSTopic”,自动跳转至 SNS 控制台

c, 在SNS控制台上点击”发布消息“:

d, 输入测试消息并发送:

e, 在微信客户端检查是否能够正常接收测试消息:

d 后续其他应用如果需要发送消息至微信,则可以将其与SNS进行对接,这样就可以很方便的进行微信告警而无须额外增加处理代码。

第4步 - 通过 EventBridge 捕获 AWS 相关事件并进行告警

a, 如前面所述,这个应用部署了两个示例的规则,分别是捕获AWS健康事件和EC2状态变更事件,同样可以在 Lambda 控制台中找到这两个规则:

b, 接下来我们可以启动一台EC2实例,在微信端检查相关的告警信息:

小结 • 在这个教程里我们演示了如何在Serverless Application Repository一键部署一个微信告警应用,以帮助我们快速进行云平台事件的告警。通过对EventBridge规则的扩展,我们可以很方便地增加新的告警规则,而不需要去手动编写Lambda代码。从这个微信告警应用,我们也可以看到Serverless对于应用开发的效率提升非常明显,我们可以在后续的应用场景中更多地使用Serverless服务和技术,从而提高开发效率,减少运维压力

文章链接 : https://www.amazonaws.cn/getting-started/tutorials/serverless-wechat-notification/?sc_channel=seo&sc_campaign=acquisition_CN&sc_medium=backlink&sc_content=wechat

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Application Repository一键启用微信告警通告
序言我们在应用云服务平台时偶而会在管理人员电子邮箱中接到操作系统产生的告警通告,如EC2维护保养信息内容,这种电子邮件非常容易吞没在发件箱中,沒有获得妥善处理。此外针对关键的使用大家也许会在CloudWatch设定一些指标值告警并开展电子邮件通告。假如这种都能够发至手机微信等即时通讯手机软件,就比电子邮件通告许多了,终究很多人都习惯性在即时通讯手机软件上查
Application Repository一键启用微信告警通知
前言我们在使用时偶尔会在管理员邮箱中收到系统发出的告警通知,如EC2维护信息,这些邮件很容易淹没在收件箱中,没有得到及时处理。另外对于重要的应用我们可能会在CloudWatch设置一些指标告警并进行邮件通知。如果这些都可以发到微信等即时通信软件,就比邮件通知好多了,毕竟很多人都习惯在即时通信软件上查看消息。具体实现原理并不复杂,我们知道微信等即时通信工具均
Easter79 Easter79
2年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Wesley13 Wesley13
2年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Stella981 Stella981
2年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Stella981 Stella981
2年前
Prometheus 整合 AlertManager
简介Alertmanager主要用于接收Prometheus发送的告警信息,它很容易做到告警信息的去重,降噪,分组,策略路由,是一款前卫的告警通知系统。它支持丰富的告警通知渠道,可以将告警信息转发到邮箱、企业微信、钉钉等。这一节讲解利用AlertManager,把接受到的告警信息,转发到邮箱。实验准备启动http
Python进阶者 Python进阶者
5个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这