![aws lambda](https://i-blog.csdnimg.cn/blog_migrate/f6cb276abbc2948ca89e899d4f3dada5.png)
aws lambda
CloudWatchEvents的主要用例是跟踪整个AWS基础架构中的更改。 当前,它支持跨Auto Scaling组,EC2,EBS和其他各种事件发出的事件。 为了对这些事件进行有意义的处理,我们需要一种消耗它们的方法。 AWS使用术语“ targets
来指代任何想要消耗事件并支持AWS Lambda以及其他几个东西的事物。
在本文中,我们将看到如何设置AWS Lambda函数以使用CloudWatch中的事件。 到本文结尾,我们将拥有一个AWS Lambda函数,该函数会将通知发布到Slack通道。 但是,由于该机制是通用的,因此您应该能够根据用例对其进行自定义。 让我们开始吧!
设置和一般信息
可以在这里找到本文的代码存储库。 它有两个子目录:
-
functions
,其中包含Lambda函数的源代码。 -
terraform
,具有基础结构配置。
要继续,我们将需要:
- 一个AWS用户账户
- 地貌
- Python 3
- Bash / Powershell /实用程序
AWS用户账户和CLI配置
我们将需要一个具有以下IAM策略的AWS账户:
-
AWSLambdaFullAccess
-
IAMFullAccess
AWS CLI和terraform
将使用标准AWS配置,并在AWS配置文件中设置适当的凭证。
请注意,尝试演示可能需要付费。
地貌
我们将使用Terraform设置整个基础架构,包括上载Lambda函数。
Python 3
我们的Lambda函数将用Python 3编写,并且我们将在用于部署和更新AWS基础设施的脚本中使用Python。
Bash / Powershell /实用程序
如果您使用的是Linux / OS X,则需要bash
来运行脚本。 对于Windows,您将需要powershell
。 在Linux / OS X上,我们将使用zip
命令创建Lambda部署工件。
体系结构概述
我们将在本文中构建的解决方案的整体体系结构如下所示:
AWS CloudWatch event -> Lambda function invoked -> Notifications
我们将重点关注两个事件:
- EC2状态更改事件:当AWS EC2实例更改状态–启动新的EC2实例或终止现有的EC2实例时,将发生此事件。
- CloudWatch运行