Amazon EventBridge Schemas - Amazon EventBridge
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Amazon EventBridge Schemas

事件模式具有与事件它们匹配。Rule使用事件模式来选择事件并将事件发送到目标。事件模式匹配或不匹配事件。

以下事件显示了一个简单的Amazon事件 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 EC2instance-termination事件.

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

创建事件模式

要创建事件模式,请指定希望事件模式匹配的事件字段。仅指定用于匹配的字段。上一个事件模式示例仅提供三个字段的值:顶级字段“source”“detail-type”,以及“state”字段中的“detail”对象字段。应用规则时,EventBridge 会忽略事件中的所有其他字段。

要使事件模式匹配事件,事件必须包含事件模式中列出的所有字段名。字段名还必须显示在具有相同嵌套结构的事件中。

EventBridge 会忽略事件模式中未包含的事件中的字段。效果是,有一个 “*”:“*” 通配符,用于未显示在事件模式中的字段。

事件模式匹配的值遵循 JSON 规则。可以包括括括在引号 (“)、数字和关键字中的字符串truefalse, 和null

对于字符串,EventBridge 使用精确的逐个字符匹配,不进行小写化或任何其他字符串标准化。

对于数字,EventBridge 使用字符串表示形式。例如,300、300.0 和 3.0e2 不相等。

当您编写事件模式以匹配事件时,可以使用TestEventPatterntest-event-patternCLI 命令来测试您的模式是否匹配正确的事件。有关更多信息,请参阅 。TestEventPattern

匹配值

在事件模式中,要匹配的值位于 JSON 数组中,由方括号 (“[”, “]”) 括起来,以便您可以提供多个值。例如,要匹配来自 Amazon EC2 或Amazon Fargate,您可以使用以下模式,它匹配其中"source"字段为"aws.ec2"或者"aws.fargate"

{ "source": ["aws.ec2", "aws.fargate"] }

示例事件和事件模式

您可以使用所有 JSON 数据类型和值匹配事件。以下示例显示了事件以及与它们匹配的事件模式。

字段匹配

您可以匹配字段的值。考虑以下 Amazon EC2 Auto Scaling 事件。

{ "version": "0", "id": "3e3c153a-8339-4e30-8c35-687ebef853fe", "detail-type": "EC2 Instance Launch Successful", "source": "aws.autoscaling", "account": "123456789012", "time": "2015-11-11T21:31:47Z", "region": "us-east-1", "resources": [], "detail": { "eventVersion": "", "responseElements": null } }

对于上一个事件,您可以使用“responseElements”字段进行匹配。

{ "source": ["aws.autoscaling"], "detail-type": ["EC2 Instance Launch Successful"], "detail": { "responseElements": [null] } }

值匹配

考虑以下 Amazon Macie 经典事件,该事件将被截断。

{ "version": "0", "id": "3e355723-fca9-4de3-9fd7-154c289d6b59", "detail-type": "Macie Alert", "source": "aws.macie", "account": "123456789012", "time": "2017-04-24T22:28:49Z", "region": "us-east-1", "resources": [ "arn:aws:macie:us-east-1:123456789012:trigger/trigger_id/alert/alert_id", "arn:aws:macie:us-east-1:123456789012:trigger/trigger_id" ], "detail": { "notification-type": "ALERT_CREATED", "name": "Scanning bucket policies", "tags": [ "Custom_Alert", "Insider" ], "url": "https://lb00.us-east-1.macie.aws.amazon.com/111122223333/posts/alert_id", "alert-arn": "arn:aws:macie:us-east-1:123456789012:trigger/trigger_id/alert/alert_", "risk-score": 80, "trigger": { "rule-arn": "arn:aws:macie:us-east-1:123456789012:trigger/trigger_id", "alert-type": "basic", "created-at": "2017-01-02 19:54:00.644000", "description": "Alerting on failed enumeration of large number of bucket policie "risk": 8 }, "created-at": "2017-04-18T00:21:12.059000", . . .

以下事件模式匹配风险分数为 80 且触发风险为 8 的任何事件。

{ "source": ["aws.macie"], "detail-type": ["Macie Alert"], "detail": { "risk-score": [80], "trigger": { "risk": [8] } } }