从警报生成的AWS SNS以终止实例

时间:2018-08-14 02:41:28

标签: amazon-web-services aws-lambda amazon-sns

我对使用Lambda并不熟悉,并且想知道是否有人可以为以下情况提供指导。

我想创建一个Lambda函数,当其CPU> = 100%的实例发出警报时,通过SNS订阅调用该函数。

我已经创建了Alert,SNS主题等。我现在正在寻找的是将获取实例并终止所述实例的lambda代码。

有人有执行此操作的代码吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

如果您要做的只是根据CPU利用率终止实例,那么您不需要AWS Lambda。您可以简单地使用Amazon CloudWatch Alarms进行以下操作

  1. 通过https://console.aws.amazon.com/cloudwatch/打开CloudWatch控制台。
  2. 在导航窗格中,依次选择“警报”,“创建警报”。
  3. 对于“选择指标”步骤,请执行以下操作:
    1. 在EC2指标下,选择“每实例指标”。
    2. 选择包含实例和CPUUtilization指标的行。
    3. 对于统计信息,选择平均值。
    4. 选择一个时间段(例如1小时)。
    5. 选择下一步。
  4. 对于“定义警报”步骤,请执行以下操作:
    1. 在“警报阈值”下,键入警报的唯一名称(例如,终止EC2实例)和警报的描述(例如,当CPU空闲时间过长时终止Terminate EC2实例)。警报名称只能包含ASCII字符。
    2. 在“何时”下,选择<并键入10。对于,键入24个连续的句点。
    3. 在通知下,对于“向以下位置发送通知”,选择一个现有的SNS主题或创​​建一个新主题。
    4. 要创建SNS主题,请选择“新建”列表。对于“将通知发送到”,键入SNS主题的名称(例如,Terminate_EC2_Instance)。对于“电子邮件列表”,键入一个逗号分隔的电子邮件地址列表,当警报更改为“警报”状态时将通知该电子邮件地址。每个电子邮件地址都会发送一个主题订阅确认电子邮件。您必须先确认订阅,然后才能将通知发送到电子邮件地址。
    5. 选择EC2操作。
    6. 对于“每当此警报”,请选择“状态为警报”。对于“执行此操作”,选择“终止此实例”。
    7. 选择创建警报。