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