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

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

教程:使用记录 Amazon EC2 实例的状态EventBridge

注意

本教程的创建规则部分已过时,并且即将更新。

您可以创建Amazon Lambda记录状态更改的函数Amazon EC2实例。之后即可创建一个规则它在状态发生任何转换时或者在状态转换为一个或多个相关状态时运行 Lambda 函数。在此教程中,您将记录任何新实例的启动。

第 1 步:创建Amazon Lambda功能

创建 Lambda 函数以记录状态更改事件. 在步骤 2 中创建规则时,您可以指定此函数。

创建 Lambda 函数

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

  2. 选择 Create function (创建函数)

  3. 选择 Author from scratch (从头开始创作)

  4. 输入 Lambda 函数的名称和说明。例如,将函数命名为 LogEC2InstanceStateChange

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

  6. 在存储库的代码双击函数页面的选项卡index.js.

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

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

第 2 步:创建规则

创建一个规则以运行您在步骤 1 中创建的 Lambda 函数。该规则在您启动 Amazon EC2 实例时运行。

创建 EventBridge 规则

  1. 打开 AmazonEventBridge控制台https://console.aws.amazon.com/events/.

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

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

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

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

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

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

    3. 对于服务提供商,选择 Amazon

    4. 对于 Service Name (服务名称),请选择 EC2。​

    5. 对于事件类型,请选择 EC2 实例状态更改通知

    6. 依次选择 Specific state(s) (特定状态)running (正在运行)

    7. 默认情况下,该规则与区域中任何实例组匹配。要使该规则匹配某个特定实例,请选择 Specific instance Id(s) (特定实例 ID),然后输入一个或多个实例 ID。

  6. 对于 Select event bus (选择事件总线),选择 Amazon default event bus (亚马逊云科技默认事件总线)。当您账户中的某个 Amazon 服务发出一个事件时,它始终会发送到您账户的默认事件总线。

  7. 对于 Target (目标),选择 Lambda function (Lambda 函数)

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

  9. 选择创建

第 3 步:测试 规则

为了测试规则,启动一个 Amazon EC2 实例。等待几分钟,以便该实例启动并初始化,然后验证您的 Lambda 函数是否运行。

通过启动实例测试规则

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

  2. 启动一个实例。有关更多信息,请参阅适用于 Linux 实例的 Amazon EC2 用户指南中的启动您的实例

  3. 打开 AmazonEventBridge控制台https://console.aws.amazon.com/events/.

  4. 在导航窗格中,选择Rule,选择您创建的规则的名称,然后选择规则的指标.

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

    1. 打开 CloudWatch 控制台 (https://console.aws.amazon.com/cloudwatch/)。

    2. 在导航窗格中,选择日志

    3. 例如,选择 Lambda 函数的日志组的名称。/aws/lambda/function-name.

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

  6. (可选)完成后,您可以打开 Amazon EC2 控制台并停止或终止您启动的实例。有关更多信息,请参阅适用于 Linux 实例的 Amazon EC2 用户指南 中的终止实例

第 4 步:确认成功

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

第 5 步:清除 资源

除非您想要保留为本教程创建的资源,否则可立即将其删除。通过删除Amazon您不再使用的资源,可防止您的产生不必要的费用Amazonaccount.

删除EventBridge规则

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

  2. 选择您创建的规则。

  3. 选择 Delete

  4. 选择 Delete

删除 Lambda 函数

  1. 打开 Lamba 控制台的 Functions(函数)页面

  2. 选择您创建的函数。

  3. 依次选择 ActionsDelete

  4. 选择 Delete