Amazon CloudWatch Events
用户指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

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

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

步骤 1:创建 AWS Lambda 函数

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

创建 Lambda 函数

  1. 通过以下网址打开 AWS Lambda 控制台:https://console.amazonaws.cn/lambda/

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

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

  4. Configure triggers 页面上,选择 Next

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

    1. 键入 Lambda 函数的名称和说明。例如,将函数命名为“LogEC2InstanceStateChange”。

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

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

    4. 选择 Next

  6. Review 页面上,选择 Create function

步骤 2:创建规则

创建一个规则,以便每当您启动 Amazon EC2 实例时,就运行您的 Lambda 函数。

创建 CloudWatch Events 规则

  1. 通过以下网址打开 CloudWatch 控制台:https://console.amazonaws.cn/cloudwatch/

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

  3. 对于 Event source,执行以下操作:

    1. 选择 Event Pattern

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

    3. 依次选择 EC2EC2 实例状态更改通知

    4. 依次选择特定状态正在运行

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

    
                            事件选择器窗格
  4. 对于目标,依次选择添加目标Lambda 函数

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

  6. 选择 Configure details

  7. 对于 Rule definition,键入规则的名称和描述。

  8. 选择 Create rule

步骤 3:测试规则

为了测试规则,启动一个 Amazon EC2 实例。等待几分钟,在该实例启动并初始化之后,可以验证您的 Lambda 函数是否已调用。

通过启动实例测试规则

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

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

  3. 通过以下网址打开 CloudWatch 控制台:https://console.amazonaws.cn/cloudwatch/

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

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

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

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

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

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