

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

# 教程：使用记录 Auto Scaling 组的状态 EventBridge
<a name="eb-log-as-group-state"></a>

可以运行 [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) 函数，只要自动扩缩组启动或终止一个 Amazon EC2 实例，此函数就会记录一个[事件](eb-events.md)，指示事件是否成功。

有关使用 Amazon EC2 Auto Scaling 事件的更多场景的信息，请参阅 A *mazon EC2 Auto Scaling 用户指南中的用于 EventBridge 处理自动缩放*[事件](https://docs.aws.amazon.com/autoscaling/latest/userguide/automating-ec2-auto-scaling-with-eventbridge.html)。

在本教程中，您将创建一个 Lambda 函数，然后在 EventBridge 控制台中创建一条[规则，该规则](eb-rules.md)在 Amazon EC2 Auto Scaling 组启动或终止实例时调用该函数。

**Topics**
+ [先决条件](#eb-as-prereqs)
+ [第 1 步：创建 Lambda 函数](#eb-as-create-lambda-function)
+ [步骤 2：创建规则](#eb-as-create-rule)
+ [步骤 3：测试规则](#eb-as-test-rule)
+ [步骤 4：确认成功](#success)
+ [步骤 5：清理资源](#cleanup)

## 先决条件
<a name="eb-as-prereqs"></a>

完成本教程需要以下资源：
+ 一个自动扩缩组。有关创建自动扩缩组的更多信息，请参阅《Amazon EC2 Auto Scaling 用户指南》中的[使用启动配置创建自动扩缩组](https://docs.aws.amazon.com/autoscaling/latest/userguide/create-asg.html)。

## 第 1 步：创建 Lambda 函数
<a name="eb-as-create-lambda-function"></a>

创建一个 Lambda 函数，以记录您的 Auto Scaling 组的扩展和缩减事件。

**创建 Lambda 函数**

1. 打开 AWS Lambda 控制台，网址为[https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/)。

1. 选择**创建函数**。

1. 选择**从头开始创作**。

1. 输入 Lambda 函数的名称。例如，将函数命名为 `LogAutoScalingEvent`。

1. 将其余选项保留为默认值，然后选择**创建函数**。

1. 在函数页面的**代码**选项卡上，双击 **index.js**。

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

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

1. 选择 **Deploy (部署)**。

## 步骤 2：创建规则
<a name="eb-as-create-rule"></a>

创建规则，运行您在步骤 1 中创建的 Lambda 函数。在您的自动扩缩组启动或停止实例时，该规则会运行。

**创建 规则**

1. 打开 Amazon EventBridge 控制台，网址为[https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/)。

1. 在导航窗格中，选择**规则**。

1. 选择**创建规则**。

1. 为规则输入名称和描述。例如，将规则命名为 `TestRule`

1. 对于**事件总线**，请选择要与此规则关联的事件总线。如果您希望此规则对来自您自己的账户的匹配事件触发，请选择**默认**。当您账户中的某个 AWS 服务发出一个事件时，它始终会发送到您账户的默认事件总线。

1. 对于**规则类型**，选择**具有事件模式的规则**。

1. 选择**下一步**。

1. 对于**事件源**，选择**AWS 服务**。

1. 对于 **Event pattern**（事件模式），执行以下操作：

   1. 对于**事件源**，从下拉列表中选择**自动扩缩**。

   1. 对于**事件类型**，从下拉列表中选择**实例启动和终止**。

   1. 选择**任何实例事件**和**任何组名**。

1. 选择**下一步**。

1. 对于**目标类型**，选择**AWS 服务**。

1. 对于**选择目标**，从下拉列表中选择 **Lambda 函数**。

1. 在**函数**中，选择您在**步骤 1：创建 Lambda 函数**部分创建的 Lambda 函数。在此示例中，选择 `LogAutoScalingEvent`。

1. 选择**下一步**。

1. 选择**下一步**。

1. 查看规则详细信息并选择**创建规则**。

## 步骤 3：测试规则
<a name="eb-as-test-rule"></a>

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

**使用 Auto Scaling 组测试您的规则**

1. 要增加您的 Auto Scaling 组的大小，请执行以下操作：

   1. 打开位于 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 的 Amazon EC2 控制台。

   1. 在导航窗格上，依次选择 **Auto Scaling** 和 **Auto Scaling Groups (Auto Scaling 组)**。

   1. 选中您的 Auto Scaling 组对应的复选框。

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

1. 要查看 Lambda 函数的输出，请执行以下操作：

   1. 打开 CloudWatch 控制台，网址为[https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/)。

   1. 在导航窗格中，选择**日志**。

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

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

1. （可选）完成后，您可以将所需的容量减一，这样自动扩缩组就会返回到之前的大小。

## 步骤 4：确认成功
<a name="success"></a>

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

## 步骤 5：清理资源
<a name="cleanup"></a>

除非您想要保留为本教程创建的资源，否则可立即将其删除。通过删除不再使用的 AWS 资源，可以防止向您的 AWS 账户收取不必要的费用。

**要删除 EventBridge 规则**

1. 打开 EventBridge 控制台的 [“规则” 页面](https://console.aws.amazon.com/events/home#/rules)。

1. 选择您创建的规则。

1. 选择**删除**。

1. 选择**删除**。

**删除 Lambda 函数**

1. 打开 Lamba 控制台的[函数](https://console.aws.amazon.com/lambda/home#/functions)页面。

1. 选择您创建的函数。

1. 依次选择**操作**和**删除**。

1. 选择**删除**。