

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

# 執行個體重新整理範例事件和模式
<a name="instance-refresh-eventbridge-events"></a>

使用 Amazon EventBridge，您可以建立符合傳入*事件*的*規則*，並將其路由到*目標*以進行處理。

**Topics**
+ [執行個體重新整理事件](#instance-refresh-events)
+ [執行個體重新整理取代根磁碟區生命週期事件](#instance-refresh-rvr-lifecycle-events)

## 執行個體重新整理事件
<a name="instance-refresh-events"></a>

下列範例顯示執行個體重新整理功能的事件。盡可能產生事件。

**Topics**
+ [達到檢查點](#instance-refresh-checkpoint-reached)
+ [已啟動執行個體重新整理](#instance-refresh-started)
+ [執行個體重新整理已成功](#instance-refresh-succeeded)
+ [執行個體重新整理失敗](#instance-refresh-failed)
+ [已取消執行個體重新整理](#instance-refresh-cancelled)
+ [執行個體重新整理復原已啟動](#instance-refresh-rollback-started)
+ [執行個體重新整理復原成功](#instance-refresh-rollback-succeeded)
+ [執行個體重新整理復原失敗](#instance-refresh-rollback-failed)

### 達到檢查點
<a name="instance-refresh-checkpoint-reached"></a>

當已取代的執行個體數目達到針對檢查點定義的百分比閾值時，Amazon EC2 Auto Scaling 會傳送以下事件。

```
{
  "version": "0",
  "id": "{{12345678}}-{{1234}}-{{1234}}-{{1234}}-{{123456789012}}",
  "detail-type": "EC2 Auto Scaling Instance Refresh Checkpoint Reached",
  "source": "aws.autoscaling",
  "account": "{{123456789012}}",
  "time": "{{yyyy}}-{{mm}}-{{dd}}T{{hh}}:{{mm}}:{{ss}}Z",
  "region": "{{us-west-2}}",
  "resources": [
    "{{auto-scaling-group-arn}}"
  ],
  "detail": {
    "InstanceRefreshId": "{{ab00cf8f}}-{{9126}}-{{4f3c}}-{{8010}}-{{dbb8cad6fb86}}",
    "AutoScalingGroupName": "{{my-asg}}",
    "CheckpointPercentage": "{{50}}",
    "CheckpointDelay": "{{300}}"
  }
}
```

### 已啟動執行個體重新整理
<a name="instance-refresh-started"></a>

在執行個體重新整理的狀態變更為 `InProgress` 時，Amazon EC2 Auto Scaling 會傳送以下事件。

```
{
  "version": "0",
  "id": "{{12345678}}-{{1234}}-{{1234}}-{{1234}}-{{123456789012}}",
  "detail-type": "EC2 Auto Scaling Instance Refresh Started",
  "source": "aws.autoscaling",
  "account": "{{123456789012}}",
  "time": "{{yyyy}}-{{mm}}-{{dd}}T{{hh}}:{{mm}}:{{ss}}Z",
  "region": "{{us-west-2}}",
  "resources": [
    "{{auto-scaling-group-arn}}"
  ],
  "detail": {
    "InstanceRefreshId": "{{c613620e}}-{{07e2}}-{{4ed2}}-{{a9e2}}-{{ef8258911ade}}",
    "AutoScalingGroupName": "{{my-asg}}"
  }
}
```

### 執行個體重新整理已成功
<a name="instance-refresh-succeeded"></a>

在執行個體重新整理的狀態變更為 `Successful` 時，Amazon EC2 Auto Scaling 會傳送以下事件。

```
{
  "version": "0",
  "id": "{{12345678}}-{{1234}}-{{1234}}-{{1234}}-{{123456789012}}",
  "detail-type": "EC2 Auto Scaling Instance Refresh Succeeded",
  "source": "aws.autoscaling",
  "account": "{{123456789012}}",
  "time": "{{yyyy}}-{{mm}}-{{dd}}T{{hh}}:{{mm}}:{{ss}}Z",
  "region": "{{us-west-2}}",
  "resources": [
    "{{auto-scaling-group-arn}}"
  ],
  "detail": {
    "InstanceRefreshId": "{{c613620e}}-{{07e2}}-{{4ed2}}-{{a9e2}}-{{ef8258911ade}}",
    "AutoScalingGroupName": "{{my-asg}}"
  }
}
```

### 執行個體重新整理失敗
<a name="instance-refresh-failed"></a>

在執行個體重新整理的狀態變更為 `Failed` 時，Amazon EC2 Auto Scaling 會傳送以下事件。

```
{
  "version": "0",
  "id": "{{12345678}}-{{1234}}-{{1234}}-{{1234}}-{{123456789012}}",
  "detail-type": "EC2 Auto Scaling Instance Refresh Failed",
  "source": "aws.autoscaling",
  "account": "{{123456789012}}",
  "time": "{{yyyy}}-{{mm}}-{{dd}}T{{hh}}:{{mm}}:{{ss}}Z",
  "region": "{{us-west-2}}",
  "resources": [
    "{{auto-scaling-group-arn}}"
  ],
  "detail": {
    "InstanceRefreshId": "{{c613620e}}-{{07e2}}-{{4ed2}}-{{a9e2}}-{{ef8258911ade}}",
    "AutoScalingGroupName": "{{my-asg}}"
  }
}
```

### 已取消執行個體重新整理
<a name="instance-refresh-cancelled"></a>

在執行個體重新整理的狀態變更為 `Cancelled` 時，Amazon EC2 Auto Scaling 會傳送以下事件。

```
{
  "version": "0",
  "id": "{{12345678}}-{{1234}}-{{1234}}-{{1234}}-{{123456789012}}",
  "detail-type": "EC2 Auto Scaling Instance Refresh Cancelled",
  "source": "aws.autoscaling",
  "account": "{{123456789012}}",
  "time": "{{yyyy}}-{{mm}}-{{dd}}T{{hh}}:{{mm}}:{{ss}}Z",
  "region": "{{us-west-2}}",
  "resources": [
    "{{auto-scaling-group-arn}}"
  ],
  "detail": {
    "InstanceRefreshId": "{{c613620e}}-{{07e2}}-{{4ed2}}-{{a9e2}}-{{ef8258911ade}}",
    "AutoScalingGroupName": "{{my-asg}}"
  }
}
```

### 執行個體重新整理復原已啟動
<a name="instance-refresh-rollback-started"></a>

在執行個體重新整理的狀態變更為 `RollbackInProgress` 時，Amazon EC2 Auto Scaling 會傳送以下事件。

```
{
  "version": "0",
  "id": "{{12345678}}-{{1234}}-{{1234}}-{{1234}}-{{123456789012}}",
  "detail-type": "EC2 Auto Scaling Instance Refresh Rollback Started",
  "source": "aws.autoscaling",
  "account": "{{123456789012}}",
  "time": "{{yyyy}}-{{mm}}-{{dd}}T{{hh}}:{{mm}}:{{ss}}Z",
  "region": "{{us-west-2}}",
  "resources": [
    "{{auto-scaling-group-arn}}"
  ],
  "detail": {
    "InstanceRefreshId": "{{c613620e}}-{{07e2}}-{{4ed2}}-{{a9e2}}-{{ef8258911ade}}",
    "AutoScalingGroupName": "{{my-asg}}"
  }
}
```

### 執行個體重新整理復原成功
<a name="instance-refresh-rollback-succeeded"></a>

在執行個體重新整理的狀態變更為 `RollbackSuccessful` 時，Amazon EC2 Auto Scaling 會傳送以下事件。

```
{
  "version": "0",
  "id": "{{12345678}}-{{1234}}-{{1234}}-{{1234}}-{{123456789012}}",
  "detail-type": "EC2 Auto Scaling Instance Refresh Rollback Succeeded",
  "source": "aws.autoscaling",
  "account": "{{123456789012}}",
  "time": "{{yyyy}}-{{mm}}-{{dd}}T{{hh}}:{{mm}}:{{ss}}Z",
  "region": "{{us-west-2}}",
  "resources": [
    "{{auto-scaling-group-arn}}"
  ],
  "detail": {
    "InstanceRefreshId": "{{c613620e}}-{{07e2}}-{{4ed2}}-{{a9e2}}-{{ef8258911ade}}",
    "AutoScalingGroupName": "{{my-asg}}"
  }
}
```

### 執行個體重新整理復原失敗
<a name="instance-refresh-rollback-failed"></a>

在執行個體重新整理的狀態變更為 `Failed` 時，Amazon EC2 Auto Scaling 會傳送以下事件。

```
{
  "version": "0",
  "id": "{{12345678}}-{{1234}}-{{1234}}-{{1234}}-{{123456789012}}",
  "detail-type": "EC2 Auto Scaling Instance Refresh Rollback Failed",
  "source": "aws.autoscaling",
  "account": "{{123456789012}}",
  "time": "{{yyyy}}-{{mm}}-{{dd}}T{{hh}}:{{mm}}:{{ss}}Z",
  "region": "{{us-west-2}}",
  "resources": [
    "{{auto-scaling-group-arn}}"
  ],
  "detail": {
    "InstanceRefreshId": "{{c613620e}}-{{07e2}}-{{4ed2}}-{{a9e2}}-{{ef8258911ade}}",
    "AutoScalingGroupName": "{{my-asg}}"
  }
}
```

## 執行個體重新整理取代根磁碟區生命週期事件
<a name="instance-refresh-rvr-lifecycle-events"></a>

在將生命週期關聯新增至 Auto Scaling 群組時，Amazon EC2 Auto Scaling 會在執行個體轉換到等待狀態時，將事件傳送至 EventBridge。如需詳細資訊，請參閱[使用生命週期掛鉤取代根磁碟區](replace-root-volume.md#replace-root-volume-lifecycle-hooks)。

下列範例顯示當 Auto Scaling 群組的執行個體在執行個體重新整理期間正在進行根磁碟區取代時的事件。盡可能發出事件。

**Topics**
+ [開始取代根磁碟區生命週期動作](#rvr-start-lifecycle-action)
+ [結束取代根磁碟區生命週期動作](#rvr-end-lifecycle-action)
+ [事件模式範例](#rvr-event-patterns)

### 開始取代根磁碟區生命週期動作
<a name="rvr-start-lifecycle-action"></a>

在執行個體重新整理期間選取執行個體進行根磁碟區取代時，其狀態會變更為 `ReplacingRootVolume:Wait`。

```
{
  "version": "0",
  "id": "{{12345678}}-{{1234}}-{{1234}}-{{1234}}-{{123456789012}}",
  "detail-type": "EC2 Instance-terminate 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-terminate-lifecycle-hook}}",
    "EC2InstanceId": "i-{{1234567890abcdef0}}",
    "LifecycleTransition": "autoscaling:EC2_INSTANCE_TERMINATING",
    "NotificationMetadata": "{{additional-info}}",
    "Origin": "AutoScalingGroup",
    "Destination": "AutoScalingGroup",
    "Action": "ReplaceRootVolume"
  }
}
```

### 結束取代根磁碟區生命週期動作
<a name="rvr-end-lifecycle-action"></a>

當執行個體完成根磁碟區取代，且其狀態變更為 時`Pending:Wait`。

```
{
  "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": "AutoScalingGroup",
    "Destination": "AutoScalingGroup",
    "Action": "ReplaceRootVolume"
  }
}
```

### 事件模式範例
<a name="rvr-event-patterns"></a>

上一節提供 Amazon EC2 Auto Scaling 在執行個體重新整理期間以取代根磁碟區策略發出的範例事件。EventBridge 事件模式擁有與其相符事件相同的結構。該模式引用您欲比對的欄位，並提供您正在尋找的數值。事件中的下列欄位會形成規則中定義的事件模式，以呼叫動作：

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

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

`"Action": "{{ReplaceRootVolume}}"`  
識別在執行個體上執行的動作。

使用下列範例事件模式，擷取與準備取代其根磁碟區之執行個體相關聯的所有事件：

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

使用下列範例事件模式，擷取在完成根磁碟區取代後，與返回服務的執行個體相關聯的所有事件：

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