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

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

教程:使用 EventBridge 来记录 Auto Scaling 组的状态

您可在其他实例上运行Amazon Lambda函数,用于记录事件每当 Auto Scaling 组启动或终止指示事件是否成功的 Amazon EC2 实例时。

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

在本教程中,您将创建 Lambda 函数,然后创建一个规则,当 Auto Scaling 组启 EventBridge 或终止实例时调用该函数。

第 1 步:创建 Lambda 函数

创建 Lambda 函数,以记录 Auto Scaling 组的横向扩展和缩减事件。

创建 Lambda 函数

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

  2. 选择创建函数

  3. 选择 Author from scratch

  4. 输入 Lambda 函数的名称。例如,将函数命名为 LogAutoScalingEvent

  5. 将其他选项保留为默认值,然后选择创建函数

  6. 在存储库的代码选项卡上,双击index.js

  7. 使用以下代码替换现有代码。

    'use strict'; exports.handler = (event, context, callback) => { console.log('LogAutoScalingEvent'); console.log('Received event:', JSON.stringify(event, null, 2)); callback(null, 'Finished'); };
  8. 选择 Deploy

第 2 步:创建规则

创建一个规则,以运行您在步骤 1 中创建的 Lambda 函数。当 Auto Scaling 组启动或停止实例时,该规则将运行。

创建 规则

  1. 打开位于 https://console.aws.amazon.com/events/ 的 Amazon EventBridge 控制台。

  2. 在导航窗格中,选择 Rules (规则)

  3. 选择 Create rule (创建规则)

  4. 为规则输入名称和描述。

  5. 对于 Define pattern (定义模式),请执行以下操作:

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

    2. 选择 Pre-defined by service (服务预定义)

    3. 对于 Service provider (服务提供商),选择 Amazon

    4. 对于 Service Name,选择 Auto Scaling

    5. 对于 Event Type (事件类型),选择 Instance Launch and Terminate (实例启动和终止)

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

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

  6. 对于 Select event bus (选择事件总线),选择 Amazon default event bus (Amazon 默认事件总线)。当Amazon服务发出一个事件,它会发送到您账户的默认事件总线。

  7. 适用于目标中,选择Lambda 函数

  8. 适用于函数中,选择您创建的 Lambda 函数。

  9. 选择创建

第 3 步:测试 规则

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

使用 Auto Scaling 组测试您的规则

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

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

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

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

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

  2. 打开位于 https://console.aws.amazon.com/events/ 的 Amazon EventBridge 控制台。

  3. 在导航窗格中,选择Rule,选择所创建规则的名称,然后选择规则的衡量指标

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

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

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

    3. 选择 Lambda 函数 (您的 Lambda 函数的日志组的名称 (/aws/lambda/function-name)。

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

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

第 4 步:确认成功

如果您在 CloudWatch 日志中看到 Lambda 事件,则表示您已成功完成本教程。如果事件不在您的 CloudWatch 日志中,请通过验证规则是否已成功创建开始故障排除,如果规则看起来正确,请验证 Lambda 函数的代码是否正确。

第 5 步:清除资源

现在,您可以删除您为本教程创建的资源,除非您想要保留它们。通过删除Amazon您不再使用的资源,可防止您的Amazonaccount.

删除 EventBridge 梁规则

  1. 打开“规则” 页的 EventBridge 控制台。

  2. 选择您创建的规则。

  3. 选择 Delete (删除)

  4. 选择 Delete (删除)

删除 Lambda 函数

  1. 打开“函数” 页的 Lambda 控制台。

  2. 选择您创建的函数。

  3. 依次选择 ActionsDelete

  4. 选择 Delete (删除)