本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
亚马逊 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
事件。事件模式通过指定三个要求来匹配事件来实现此目的:
事件源必须是 Amazon EC2。
该事件必须是 Amazon EC2 状态变更通知。
Amazon EC2 实例的状态必须为
terminated
。
{
"source": ["aws.ec2"],
"detail-type": ["EC2 Instance State-change Notification"],
"detail": {
"state": ["terminated"]
}
}
请注意,在此示例中,事件模式包括与事件相关的字段--source
和 detail-type
--以及事件正文中的一个字段--state
。
重要
活动总线的事件模式
对于事件总线,您可以为总线创建的每条规则指定事件模式。通过这种方式,您可以选择向特定目标发送哪些事件。事件总线的事件模式可以与事件源、事件元数据和/或事件详细信息值相匹配。
以下视频讨论了事件总线事件模式的基础知识:
Pipes 的事件 EventBridge 模式
对于 EventBridge Pipes,您可以指定事件模式来筛选要传送到管道目标的管道源中的事件。由于每个管道都有一个事件源,因此管道的事件模式可以与事件元数据和/或详细信息值相匹配。
并非所有事件字段都可用于构造管道事件模式。有关更多信息,请参阅 过滤。