

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

# 建立 Amazon EventBridge 事件模式
<a name="eb-event-patterns"></a>

您可能不想處理傳遞給指定事件匯流排或管道的每個單一事件。相反地，您可能想要根據事件的來源、事件類型和/或這些事件的屬性，選取所有交付事件的子集。

若要指定要傳送至目標的事件，您可以建立*事件模式*。事件模式會定義 EventBridge 資料用於判斷是否將事件傳送至目標。如果事件模式符合事件， 會將事件 EventBridge 傳送至目標。事件模式擁有與其相符事件相同的結構。事件模式與一個事件相符或不相符。

**提示**  
您可以在建立或更新規則之前，使用 EventBridge 沙盒根據範例事件來測試事件模式。如需詳細資訊，請參閱[使用 EventBridge 沙盒測試事件模式](eb-event-pattern-sandbox.md)。

例如，請考慮來自 Amazon EC2 的下列事件：

```
{
  "version": "0",
  "id": "6a7e8feb-b491-4cf7-a9f1-bf3703467718",
  "detail-type": "EC2 Instance State-change Notification",
  "source": "aws.ec2",
  "account": "111122223333",
  "time": "2017-12-22T18:43:48Z",
  "region": "us-west-1",
  "resources": [
    "arn:aws:ec2:us-west-1:123456789012:instance/i-1234567890abcdef0"
  ],
  "detail": {
    "instance-id": "i-1234567890abcdef0",
    "state": "terminated"
  }
}
```

下列事件模式會選取所有 Amazon EC2 `instance-termination`事件。事件模式透過指定三個符合事件的要求來執行此操作：

1. 事件來源必須是 Amazon EC2。

1. 事件必須是 Amazon EC2 狀態變更通知。

1. Amazon EC2 執行個體的狀態必須為 `terminated`。

```
{
  "source": ["aws.ec2"],
  "detail-type": ["EC2 Instance State-change Notification"],
  "detail": {
    "state": ["terminated"]
  }
}
```

請注意，在此範例中，事件模式包含*有關* event--`source` 和 `detail-type`-- 的欄位，以及來自 event body-- 的欄位`state`。

**重要**  
在 EventBridge 中，您可以建立規則，該規則會導致高於預期的費用和限流。例如，您可能會不小心建立導致無限迴圈的規則，其中該規則會以遞迴方式觸發而不會結束。假設，您建立的規則可能會偵測到已在 Amazon S3 儲存貯體上變更 ACL，並觸發軟體來將它們變更為所需的狀態。如果未謹慎寫入規則，後續對 ACL 的變更會再次觸發規則，建立無限循環。  
如需有關撰寫精確規則和事件模式以將此類非預期結果降到最低的指引，請參閱 [規則的最佳實務](eb-rules-best-practices.md) 和 [最佳實務](eb-patterns-best-practices.md)。

## 事件匯流排的事件模式
<a name="eb-event-patterns-buses"></a>

對於事件匯流排，您可以為您為匯流排建立的每個規則指定事件模式。透過這種方式，您可以選取要傳送至特定目標的事件。事件匯流排的事件模式可以比對事件來源、事件中繼資料和/或事件詳細資訊值。

![\[事件會與每個匯流排規則的事件模式進行比較，並在相符時傳送至目標。\]](http://docs.aws.amazon.com/zh_tw/eventbridge/latest/userguide/images/event-pattern-bus_eventbridge_architecture.svg)


 下列影片討論事件匯流排的事件模式基本概念：




## EventBridge 管道的事件模式
<a name="eb-event-patterns-pipes"></a>

對於 EventBridge 管道，您可以指定事件模式，從要交付到管道目標的管道來源篩選事件。由於每個管道都有單一事件來源，因此管道的事件模式可以比對事件中繼資料和/或詳細資訊。

![\[事件會與管道的事件模式進行比較，並在相符時傳送至目標。\]](http://docs.aws.amazon.com/zh_tw/eventbridge/latest/userguide/images/event-pattern-pipes_eventbridge_architecture.svg)


並非所有事件欄位都可用來建構管道事件模式。如需詳細資訊，請參閱[篩選](eb-pipes-event-filtering.md)。