首页 > 解决方案 > 从终止实例的警报生成的 AWS SNS

问题描述

我对使用 Lambda 不是很熟悉,想知道是否有人可以为以下场景提供指导。

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

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

任何人都有执行此操作的代码?

谢谢!

标签: amazon-web-servicesaws-lambdaamazon-sns

解决方案


如果您只想根据 CPU 利用率终止实例,那么您不需要 AWS Lambda。您可以使用Amazon CloudWatch 警报简单地做到这一点,如下所示

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

推荐阅读