为暖池事件创建 EventBridge 规则 - Amazon EC2 Auto Scaling
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

为暖池事件创建 EventBridge 规则

以下示例创建了一个用来调用编程操作的 EventBridge 规则。每当您的自动扩缩组在有新实例被添加到暖池时发出事件时,都会执行此操作。

在创建规则之前,请创建您希望该规则用作目标的 Amazon Lambda 函数。您必须将此函数指定为该规则的目标。以下过程仅提供了创建将在新实例进入暖池时作出反应的 EventBridge 规则的步骤。有关演示如何创建可在传入的事件与规则匹配时进行调用的简单 Lambda 函数的入门教程,请参阅教程:配置调用 Lambda 函数的生命周期钩子

有关创建和使用暖池的更多信息,请参阅 Amazon EC2 Auto Scaling 的暖池

创建会调用 Lambda 函数的事件规则
  1. 打开位于 https://console.aws.amazon.com/events/ 的 Amazon EventBridge 控制台。

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

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

  4. 对于定义规则详细信息,请执行以下操作:

    1. 输入规则的 Name (名称) 和“Description (描述)”(可选)。

      规则不能与同一区域中的另一个规则和同一事件总线上的名称相同。

    2. 对于 Event bus(事件总线),选择 default(默认)。当您账户中的某个 Amazon Web Service生成一个事件时,它始终会发送到您账户的默认事件总线。

    3. 对于 Rule type(规则类型),选择 Rule with an event pattern(具有事件模式的规则)。

    4. 选择 Next(下一步)。

  5. 对于 Build event pattern(构建事件模式),执行以下操作:

    1. 对于 Event source(事件源),选择 Amazon 事件或 EventBridge 合作伙伴事件

    2. 对于 Event pattern(事件模式),选择 Custom pattern (JSON editor) [自定义模式(JSON 编辑器)],并将以下模式粘贴到 Event pattern(事件模式)框中,将其中的斜体文本替换为您的自动扩缩组的名称。

      { "source": [ "aws.autoscaling" ], "detail-type": [ "EC2 Instance-launch Lifecycle Action" ], "detail": { "AutoScalingGroupName": [ "my-asg" ], "Origin": [ "EC2" ], "Destination": [ "WarmPool" ] } }

      要创建与其他事件匹配的规则,请修改事件模式。有关更多信息,请参阅示例事件模式

    3. 选择 Next(下一步)。

  6. 对于 Select target(s)(选择目标),请执行以下操作:

    1. 对于 Target types(目标类型),选择 Amazon Web Service

    2. 对于 Select a target(选择目标),选择 Lambda function(Lambda 函数)。

    3. 然后,对于 Function(函数),选择要将事件发送到的函数。

    4. (可选)对于 Configure version/alias(配置版本/别名),输入目标 Lambda 函数的版本和别名设置。

    5. (可选)对于 Additional settings(其他设置),视应用程序的情况输入任何其他设置。有关更多信息,请参阅《Amazon EventBridge 用户指南》中的创建对事件作出反应的 Amazon EventBridge 规则(步骤 16)。

    6. 选择 Next(下一步)。

  7. (可选)对于 Tags(标签),您可以选择向规则分配一个或多个标签,然后选择 Next(下一步)。

  8. 对于 Review and create(检查并创建),检查规则的详细信息并根据需要对其进行修改。然后选择 Create rule(创建规则)。