教程:使用 CloudWatch 事件记录 Auto Scaling 组的状态 - Amazon CloudWatch Events
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

教程:使用 CloudWatch 事件记录 Auto Scaling 组的状态

注意

Amazon EventBridge 是管理事件的首选方式。CloudWatch Events 和 EventBridge 是相同的底层服务和 API,但 EventBridge 提供了更多功能。您在 CloudWatch 或 EventBridge 中所作的更改将显示在每个控制台中。有关更多信息,请参阅 。Amazon EventBridge

您可在其他实例上运行Amazon Lambda函数,只要 AutomAuto Scaling 组启动或终止 Amazon EC2 实例,此函数就会记录一个事件,而不管该启动或终止事件是否成功。

有关使用 Amazon EC2 Auto Scaling 事件的其他 CloudWatch 事件场景的信息,请参阅在 Auto Scaling 组扩展时获取 CloudWatch 事件中的Amazon EC2 Auto Scaling 用户指南

第 1 步:创建Amazon Lambda函数

创建 Lambda 函数来记录 Auto Scaling 组的扩展和缩减事件。在创建规则时指定此函数。

创建 Lambda 函数

  1. 打开Amazon Lambda控制台https://console.aws.amazon.com/lambda/

  2. 如果您是首次使用 Lambda,您将看到欢迎页面。选择 Get Started Now。否则,请选择 Create a Lambda function (创建 Lambda 函数)

  3. 选择蓝图页面上,为筛选条件键入 hello,然后选择 hello-world 蓝图。

  4. Configure triggers 页面上,选择 Next

  5. Configure function 页面上,执行以下操作:

    1. 键入 Lambda 函数的名称和描述。例如,将函数命名为“LogAutoScalingEvent”。

    2. 编辑 Lambda 函数的示例代码。例如:

      'use strict'; exports.handler = (event, context, callback) => { console.log('LogAutoScalingEvent'); console.log('Received event:', JSON.stringify(event, null, 2)); callback(null, 'Finished'); };
    3. 对于角色,选择选择现有角色。对于现有角色,选择您的基本执行角色。否则,创建新的基本执行角色。

    4. 选择 Next

  6. 选择创建函数

第 2 步:创建规则

创建一个规则,以便每当 AutomAuto Scaling 组启动或终止一个实例时,就运行 Lambda 函数。

创建 规则

  1. 通过以下网址打开 CloudWatch 控制台:https://console.aws.amazon.com/cloudwatch/

  2. 在导航窗格中,选择 EventsCreate rule

  3. 对于 Event source (事件源),执行以下操作:

    1. 选择 Event Pattern (事件模式)

    2. 选择 Build event pattern to match events by service

    3. 选择Auto Scaling实例启动和终止

    4. 选择任何实例事件以捕获所有成功和失败的实例启动和终止事件。

    
                            事件选择器窗格
  4. 默认情况下,该规则与区域中任何 Auto Scaling 组匹配。要使规则与特定的 Auto Scaling 组匹配,请选择特定的组名,然后选择一个或多个 Auto Scaling 组。

  5. 适用于目标中,选择添加目标Lambda 函数

  6. 对于函数,选择您创建的 Lambda 函数。

  7. 选择 Configure details

  8. 对于 Rule definition,键入规则的名称和描述。例如,将规则描述为 “每当 Auto Scaling 组扩展或缩减时就记录”。

  9. 选择 Create rule

第 3 步:测试 规则

您可以通过手动扩展 Automation 组来测试您的规则,以便其启动一个实例。等待几分钟,在扩展事件发生之后,验证您的 Lambda 函数是否已调用。

使用 Auto Scaling 组测试规则

  1. 要增加 Automation Auto Scaling 组的大小,请执行以下操作:

    1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

    2. 在导航窗格上,依次选择 Auto ScalingAuto Scaling Groups

    3. 选中 Auto Scaling 组所对应的复选框。

    4. Details 选项卡上,选择 Edit。对于 Desired,将所需容量增加一。例如,如果当前值是 2,请键入 3。理想容量必须小于或等于组的最大容量。如果您的 Desired 新值大于 Max,则必须更新 Max。完成后,选择 Save

  2. 通过以下网址打开 CloudWatch 控制台:https://console.aws.amazon.com/cloudwatch/

  3. 在导航窗格中,依次选择 EventsRules,再选择所创建规则的名称,然后选择 Show metrics for the rule

  4. 若要查看 Lambda 函数的输出,请执行以下操作:

    1. 在导航窗格中,选择 Logs

    2. 选择您的 Lambda 函数 (/aws/lambda/函数名)。

    3. 选择日志流的名称,以查看您启动的实例的函数提供的数据。

  5. (可选) 完成后,您可以将所需的容量减一,这样 AutomAuto Scaling 组就会返回到它之前的大小。