

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 暖集區範例事件和模式
<a name="warm-pools-eventbridge-events"></a>

Amazon EC2 Auto Scaling 支援 Amazon EventBridge 中的多種預先定義模式。這簡化了事件模式的建立方式。您在表單上選取欄位值，EventBridge 就會為您產生模式。目前，Amazon EC2 Auto Scaling 不支援由具有暖集區的 Auto Scaling 群組發出之任何事件的預先定義模式。您輸入的模式必須以 JSON 物件的形式呈現。本節和 [為暖集區事件建立 EventBridge 規則](warm-pool-events-eventbridge-rules.md) 主題向您示範如何使用事件模式來選取事件並將其傳送到目標。

若要建立可篩選 Amazon EC2 Auto Scaling 傳送至 EventBridge 的暖集區相關事件的 EventBridge 規則，請加入來自事件 `detail` 區段的 `Origin` 和 `Destination` 欄位。

`Origin` 和 `Destination` 的值可為以下項目：

`EC2` \| `AutoScalingGroup` \| `WarmPool`

**Topics**
+ [範例事件](#warm-pool-events)
+ [事件模式範例](#warm-pools-eventbridge-patterns)

## 範例事件
<a name="warm-pool-events"></a>

在將生命週期關聯新增至 Auto Scaling 群組時，Amazon EC2 Auto Scaling 會在執行個體轉換到等待狀態時，將事件傳送至 EventBridge。如需詳細資訊，請參閱[在 Auto Scaling 群組中使用具有暖集區的生命週期掛鉤](warm-pool-instance-lifecycle.md)。

本節包括 Auto Scaling 群組具有暖集區時這些事件的範例。盡可能發出事件。

**注意**  
如需 Amazon EC2 Auto Scaling 在擴展成功時傳送至 EventBridge 的事件，請參閱 [成功的擴展事件](ec2-auto-scaling-event-reference.md#ec2-auto-scaling-successful-scaling-events)。如需擴展不成功的事件，請參閱 [不成功的擴展事件](ec2-auto-scaling-event-reference.md#ec2-auto-scaling-unsuccessful-scaling-events)。

**Topics**
+ [橫向擴展生命週期動作](#warm-pool-scale-out-events)
+ [縮減生命週期動作](#warm-pool-scale-in-events)

### 橫向擴展生命週期動作
<a name="warm-pool-scale-out-events"></a>

在橫向擴展時將執行個體轉換到等待狀態時，交付的事件會以 `EC2 Instance-launch Lifecycle Action` 作為 `detail-type` 的值。在 `detail` 物件中，`Origin` 和 `Destination` 屬性的值顯示執行個體的來源和目的地。

在此範例橫向擴展事件中，新執行個體會啟動，且由於已新增至暖集區，因此其狀態會變更為 `Warmed:Pending:Wait`。如需詳細資訊，請參閱[暖集區中的執行個體生命週期狀態轉換](warm-pool-instance-lifecycle.md#lifecycle-state-transitions)。

```
{
  "version": "0",
  "id": "{{12345678}}-{{1234}}-{{1234}}-{{1234}}-{{123456789012}}",
  "detail-type": "EC2 Instance-launch Lifecycle Action",
  "source": "aws.autoscaling",
  "account": "{{123456789012}}",
  "time": "{{2021}}-{{01}}-{{13}}T{{00}}:{{12}}:{{37}}.{{214}}Z",
  "region": "{{us-west-2}}",
  "resources": [
    "{{auto-scaling-group-arn}}"
  ],
  "detail": { 
    "LifecycleActionToken": "{{71514b9d}}-{{6a40}}-{{4b26}}-{{8523}}-{{05e7eEXAMPLE}}", 
    "AutoScalingGroupName": "{{my-asg}}",
    "LifecycleHookName": "{{my-launch-lifecycle-hook}}", 
    "EC2InstanceId": "i-{{1234567890abcdef0}}", 
    "LifecycleTransition": "autoscaling:EC2_INSTANCE_LAUNCHING",
    "NotificationMetadata": "{{additional-info}}",
    "Origin": "EC2",
    "Destination": "WarmPool"
  } 
}
```

在此範例橫向擴展事件中，由於執行個體已從暖集區新增至 Auto Scaling 群組，因此其狀態會變更為 `Pending:Wait`。如需詳細資訊，請參閱[暖集區中的執行個體生命週期狀態轉換](warm-pool-instance-lifecycle.md#lifecycle-state-transitions)。

```
{
  "version": "0",
  "id": "{{12345678}}-{{1234}}-{{1234}}-{{1234}}-{{123456789012}}",
  "detail-type": "EC2 Instance-launch Lifecycle Action",
  "source": "aws.autoscaling",
  "account": "{{123456789012}}",
  "time": "{{2021}}-{{01}}-{{19}}T{{00}}:{{35}}:{{52}}.{{359}}Z",
  "region": "{{us-west-2}}",
  "resources": [
    "{{auto-scaling-group-arn}}"
  ],
  "detail": { 
    "LifecycleActionToken": "{{19cc4d4a}}-{{e450}}-{{4d1c}}-{{b448}}-{{0de67EXAMPLE}}", 
    "AutoScalingGroupName": "{{my-asg}}",
    "LifecycleHookName": "{{my-launch-lifecycle-hook}}", 
    "EC2InstanceId": "i-{{1234567890abcdef0}}", 
    "LifecycleTransition": "autoscaling:EC2_INSTANCE_LAUNCHING",
    "NotificationMetadata": "{{additional-info}}",
    "Origin": "WarmPool",
    "Destination": "AutoScalingGroup"
  } 
}
```

### 縮減生命週期動作
<a name="warm-pool-scale-in-events"></a>

在縮減時將執行個體轉換到等待狀態時，交付的事件會以 `EC2 Instance-terminate Lifecycle Action` 作為 `detail-type` 的值。在 `detail` 物件中，`Origin` 和 `Destination` 屬性的值顯示執行個體的來源和目的地。

在此範例縮減事件中，由於執行個體已傳回至暖集區，因此其狀態會變更為 `Warmed:Pending:Wait`。如需詳細資訊，請參閱[暖集區中的執行個體生命週期狀態轉換](warm-pool-instance-lifecycle.md#lifecycle-state-transitions)。

```
{
  "version": "0",
  "id": "{{12345678}}-{{1234}}-{{1234}}-{{1234}}-{{123456789012}}",
  "detail-type": "EC2 Instance-terminate Lifecycle Action",
  "source": "aws.autoscaling",
  "account": "{{123456789012}}",
  "time": "{{2022}}-{{03}}-{{28}}T{{00}}:{{12}}:{{37}}.{{214}}Z",
  "region": "{{us-west-2}}",
  "resources": [
    "{{auto-scaling-group-arn}}"
  ],
  "detail": { 
    "LifecycleActionToken": "{{42694b3d}}-{{4b70}}-{{6a62}}-{{8523}}-{{09a1eEXAMPLE}}", 
    "AutoScalingGroupName": "{{my-asg}}", 
    "LifecycleHookName": "{{my-termination-lifecycle-hook}}", 
    "EC2InstanceId": "i-{{1234567890abcdef0}}", 
    "LifecycleTransition": "autoscaling:EC2_INSTANCE_TERMINATING",
    "NotificationMetadata": "{{additional-info}}",
    "Origin": "AutoScalingGroup",
    "Destination": "WarmPool"
  } 
}
```

## 事件模式範例
<a name="warm-pools-eventbridge-patterns"></a>

前一節提供了由 Amazon EC2 Auto Scaling 發出的範例事件。

EventBridge 事件模式擁有與其相符事件相同的結構。該模式引用您欲比對的欄位，並提供您正在尋找的數值。

事件中的下列欄位會形成規則中定義的事件模式，以呼叫動作：

`"source": "aws.autoscaling"`  
識別該事件是來自 Amazon EC2 Auto Scaling。

`"detail-type": "{{EC2 Instance-launch Lifecycle Action}}"`  
識別事件類型。

`"Origin": "{{EC2}}"`  
識別執行個體的來源。

`"Destination": "{{WarmPool}}"`  
識別執行個體的目的地。

使用下列範例事件模式來擷取與進入暖集區的執行個體相關聯的所有 `EC2 Instance-launch Lifecycle Action` 事件。

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

使用下列範例事件模式來擷取與因橫向擴展事件而離開暖集區的執行個體相關聯的所有 `EC2 Instance-launch Lifecycle Action` 事件。

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

使用下列範例事件模式來擷取與直接啟動至 Auto Scaling 群組的執行個體相關聯的所有 `EC2 Instance-launch Lifecycle Action` 事件。

```
{
  "source": [ "aws.autoscaling" ],
  "detail-type": [ "EC2 Instance-launch Lifecycle Action" ],
  "detail": {
      "Origin": [ "EC2" ],
      "Destination": [ "AutoScalingGroup" ]
   }
}
```

使用下列範例事件模式來擷取與在縮減時將執行個體傳回至暖集區相關聯的所有 `EC2 Instance-terminate Lifecycle Action` 事件。

```
{
  "source": [ "aws.autoscaling" ],
  "detail-type": [ "EC2 Instance-terminate Lifecycle Action" ],
  "detail": {
      "Origin": [ "AutoScalingGroup" ],
      "Destination": [ "WarmPool" ]
   }
}
```

使用下列範例事件模式擷取與 `EC2 Instance-launch Lifecycle Action` 相關聯的所有事件，無論原始伺服器或目的地為何。

```
{
  "source": [ "aws.autoscaling" ],
  "detail-type": [ "EC2 Instance-launch Lifecycle Action" ]
}
```