Amazon EventBridge 事件模式 - Amazon EventBridge

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

Amazon EventBridge 事件模式

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

若要指定要傳送至目標的事件,請建立事件模式。事件模式定義了 EventBridge 用於確定是否將事件發送到目標的數據。如果事件模式與事件相符,則 EventBridge 會將事件傳送至目標。事件模式擁有與其相符事件相同的結構。事件模式與一個事件相符或不相符。

例如,考慮來自 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。

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

  3. Amazon EC2 執行個體的狀態必須是terminated

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

請注意,在此範例中,事件模式包含有事件--source 和---的欄位,以detail-type及來自事件主體--的欄位。state

重要

在中 EventBridge,可以建立可能導致電 higher-than-expected 荷和節流的規則。例如,您可能會不小心建立導致無限迴圈的規則,其中該規則會以遞迴方式觸發而不會結束。假設您建立規則來偵測 Amazon S3 儲存貯體上的變更,並觸發軟體將其變更為所需狀態。ACLs如果未仔細撰寫規則,後續變更會再次ACLs觸發規則,建立無限迴圈。

如需有關撰寫精確規則和事件模式以將此類非預期結果降到最低的指引,請參閱 規則的最佳做法最佳實務

事件巴士的事件模式

對於事件匯流排,您可以為匯流排建立的每個規則指定事件模式。如此一來,您就可以選取要傳送至特定目標的事件。事件匯流排的事件模式可以與事件來源、事件中繼資料和/或事件詳細資訊值進行比對。

會將事件與每個匯流排規則的事件模式進行比較,並在符合時傳送至目標。

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

EventBridge 管道的事件模式

對於 EventBridge 管道,您可以指定事件模式,以篩選要傳送至管道目標的管道來源中的事件。由於每個管道都有單一事件來源,因此管道的事件模式可以與事件中繼資料和/或詳細資料值相符。

將事件與管道的事件模式進行比較,如果匹配,則將其發送到目標。

並非所有事件欄位都可以用來建構管道事件模式。如需詳細資訊,請參閱篩選