使用AWS CloudWatch监测Lambda运行,并通过SNS发送通知 by aafeng

View this thread on steempeak.com
· @aafeng ·
$1.80
使用AWS CloudWatch监测Lambda运行,并通过SNS发送通知
在运行Amazon AWS的众多服务时,一旦某个服务出现了故障,我们肯定想要第一时间得到通知。 或者当某项服务的资源使用超过某个阀值时,我们可能想要赋予其更多资源。 要实现类似的功能,我们可以使用SNS(Simple Notification Servivce)。下面通过一个简单的例子来说明如何使用AWS CloudWatch监测Lambda运行,并通过SNS发送通知。

## 创建SNS Topic及其订阅

在任何消息系统中,最常见的方式就是设定一个主题(Topic),然后添加一些订阅者(Subscription)。这样一旦有任何新的消息发送到Topic,所有的订阅者都会收到消息推送。下面说说如何在SNS中设置Topic和Subscription。

首先再AWS SNS中创建一个Topic

![image.png](https://images.hive.blog/DQmarJCeasEZphpKP8UxcG8DHyz9mWiPBLjdYfoxccWiZhZ/image.png)

接下来我们分别创建两个订阅:Email和短信。先来看看Email方式的订阅:

![image.png](https://images.hive.blog/DQmRVCBCLisWwSxuoMKmGdmWE1MLc5Kmowd1gdLa91rUdnt/image.png)

创建结束后,需要打开自己的邮箱进行确认。

![image.png](https://images.hive.blog/DQmU9PHXytiWJ3gvNFmd1THuhXmBtanoPh5uAVcR3yJwAbL/image.png)

接下来创建一个通过短信方式的订阅。

我们可以看到,除Email和短信外,订阅消息的方式还有很多种。这样当消息抵达队列中时,可以调用一个HTTP/HTTPS的地址,可以触发一个Lambda,可以转发到Amazon的消息队列中。

![image.png](https://images.hive.blog/DQmTGzQ8PvoQ19cM3QBw5rXVZ9B9dVAtFKNEzhRabukeqQF/image.png)

## 创建一个当Lambda发生错误时触发的消息

在CloudWatch中创建一个Alarm:

![image.png](https://images.hive.blog/DQmXKvvSU44nHKLMj5g6au8npuB2gLtdHZ931Kptaz7d2Ud/image.png)

这时候需要选择一个Metric,这里选择“Lamba - errors”这个Metric。依次类推,我还添加了另一个Alarm,当Lambda的调用次数超过0次时,触发Alarm。当然,这只是为了测试。在实际使用中,应根据自己的需要调整这个阀值。

同时还要设定一些触发条件,比如当错误数超过某个数字时会触发,或者当Lambda被调用的次数超过某个阀值时会触发。

![image.png](https://images.hive.blog/DQmabAZyc58ZvuKF7JGcpadahNg1gThJFtxM1XAXenVpmS8/image.png)

接下里需要配置,当Alarm被触发时需要做的动作。这里我选择的是发送通知到前面创建好的Topic,也就是“Lambda-errors”:

![image.png](https://images.hive.blog/DQmWn8FcAMVPcRp5zo6eHCawmNbtB43ZHqMpnCpkTxo4HoR/image.png)

对于某些资源,还可以触发”Autoscaling“,这样在资源不足的情况下就可以非常快速的升级配置,实现更快的响应率。可以说这里的这些Action非常灵活,可以符合众多应用需求。

由于我设定的第二个Alarm是当Lambda被调用次数超过0次时会触发Alaram,因此在调用一次Lambda后很快就收到了消息提示。

![image.png](https://images.hive.blog/DQmXjbFqNYMpSpKdCE75E13hw6VwvSVC3u8nqv7BeohHEh2/image.png)

由此可以看到,通过这种方式,可以有效的监测各项AWS服务,一旦出现问题,可以及时以各种方式通知相关的订阅者。
👍  , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , and 74 others
properties (23)
post_id85,888,656
authoraafeng
permlinkaws-cloudwatch-lambda-sns
categorycn
json_metadata{"tags":["cn","cn-reader","cn-curation","cn-programming","aws"],"image":["https:\/\/images.hive.blog\/DQmarJCeasEZphpKP8UxcG8DHyz9mWiPBLjdYfoxccWiZhZ\/image.png","https:\/\/images.hive.blog\/DQmRVCBCLisWwSxuoMKmGdmWE1MLc5Kmowd1gdLa91rUdnt\/image.png","https:\/\/images.hive.blog\/DQmU9PHXytiWJ3gvNFmd1THuhXmBtanoPh5uAVcR3yJwAbL\/image.png","https:\/\/images.hive.blog\/DQmTGzQ8PvoQ19cM3QBw5rXVZ9B9dVAtFKNEzhRabukeqQF\/image.png","https:\/\/images.hive.blog\/DQmXKvvSU44nHKLMj5g6au8npuB2gLtdHZ931Kptaz7d2Ud\/image.png","https:\/\/images.hive.blog\/DQmabAZyc58ZvuKF7JGcpadahNg1gThJFtxM1XAXenVpmS8\/image.png","https:\/\/images.hive.blog\/DQmWn8FcAMVPcRp5zo6eHCawmNbtB43ZHqMpnCpkTxo4HoR\/image.png","https:\/\/images.hive.blog\/DQmXjbFqNYMpSpKdCE75E13hw6VwvSVC3u8nqv7BeohHEh2\/image.png"],"app":"steemit\/0.2","format":"markdown"}
created2020-05-04 07:25:24
last_update2020-05-04 07:25:24
depth0
children3
net_rshares5,871,618,906,679
last_payout2020-05-11 07:25:24
cashout_time1969-12-31 23:59:59
total_payout_value0.938 SBD
curator_payout_value0.860 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length1,832
author_reputation154,091,178,885,616
root_title"使用AWS CloudWatch监测Lambda运行,并通过SNS发送通知"
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000
author_curate_reward""
vote details (138)
@xiaoshancun ·
$0.03
啪啪啪!
👍  ,
properties (23)
post_id85,890,427
authorxiaoshancun
permlinkq9t0f3
categorycn
json_metadata{"app":"steemcn\/0.1"}
created2020-05-04 11:11:27
last_update2020-05-04 11:11:27
depth1
children0
net_rshares117,327,670,256
last_payout2020-05-11 11:11:27
cashout_time1969-12-31 23:59:59
total_payout_value0.012 SBD
curator_payout_value0.013 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length4
author_reputation155,278,422,778,942
root_title"使用AWS CloudWatch监测Lambda运行,并通过SNS发送通知"
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000
author_curate_reward""
vote details (2)
@annepink ·
拍手👏
!shop
👍  
properties (23)
post_id85,892,123
authorannepink
permlinkq9t9kh
categorycn
json_metadata{"app":"steemcn\/0.1"}
created2020-05-04 14:29:09
last_update2020-05-04 14:29:09
depth1
children0
net_rshares26,247,732,295
last_payout2020-05-11 14:29:09
cashout_time1969-12-31 23:59:59
total_payout_value0.000 SBD
curator_payout_value0.000 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length9
author_reputation160,119,580,804,298
root_title"使用AWS CloudWatch监测Lambda运行,并通过SNS发送通知"
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000
author_curate_reward""
vote details (1)
@cloudblade ·
拍拍拍拍拍拍
properties (22)
post_id85,945,141
authorcloudblade
permlinkqa24jh
categorycn
json_metadata{"app":"steemcn\/0.1"}
created2020-05-09 09:18:39
last_update2020-05-09 09:18:39
depth1
children0
net_rshares0
last_payout2020-05-16 09:18:39
cashout_time1969-12-31 23:59:59
total_payout_value0.000 SBD
curator_payout_value0.000 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length6
author_reputation82,540,418,526,802
root_title"使用AWS CloudWatch监测Lambda运行,并通过SNS发送通知"
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000