Amazon 服务事件元数据
以下字段出现在传送到事件总线的所有事件中,并构成事件的元数据:
{
"版本": "0",
"id": "UUID
",
"detail-type": "event name
",
"源": "event source
",
"account": "ARN
",
"时间": "timestamp
",
"region": "region
",
"资源": [
"ARN
"
],
"detail": {
JSON object
}
}
- 版本
-
默认情况下,在所有事件中设置为 0 (零)。
- id
-
为每个事件生成的版本 4 UUID。事件通过各种规则移动到目标时,可以使用
id
跟踪事件。 - detail-type
-
与 source 字段组合起来标识显示在 detail 字段中的字段和值。
由 CloudTrail 传输的所有事件都将
AWS API Call via CloudTrail
作为detail-type
的值。 - 源
-
标识生成事件的服务。所有来自 Amazon 服务的事件都以“aws”开头。客户生成的事件可具有任意值,前提是它不以“aws.”开头。建议使用 Java 包名样式反向域名字符串。
要查找 Amazon 服务的
source
正确值,请参阅条件键表,从列表中选择一个服务,然后查找服务前缀。例如,Amazon CloudFront 的source
值是aws.cloudfront
。 - account
-
标识 Amazon 账户的 12 位数字。
- 时间
-
事件时间戳,可由发起事件的服务指定。如果事件跨时间间隔,则服务可报告开始时间,因此该值可能早于接收事件的时间。
- region
-
标识事件源自的 Amazon 区域。
- 资源
-
一个 JSON 数组,包含用于标识事件中所涉及资源的 ARN。生成事件的服务决定是否包含这些 ARN。例如,Amazon EC2 实例状态更改包含 Amazon EC2 实例 ARN,Auto Scaling 事件包含实例和 Auto Scaling 组的 ARN,而对 Amazon CloudTrail 的 API 调用不包含资源 ARN。
- detail
-
包含关于事件信息的 JSON 对象。生成事件的服务决定该字段的内容。可以是
"{}"
。Amazon API 调用事件的 detail 对象具有约 50 个字段,嵌套多个级别。
注意
PutEvents 接受 JSON 格式的数据。对于 JSON 数字(整数)数据类型,限制条件为:最小值为 -9,223,372,036,854,775,808,最大值为 9,223,372,036,854,775,807。
例 示例:Amazon EC2 实例状态更改通知
Amazon 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"
}
}
有效的自定义事件所需的最少信息
创建自定义事件时,必须包括以下字段:
detail
detail-type
source
{
"detail-type": "event name
",
"source": "event source
",
"detail": {
}
}