本文介绍如何在事件总线EventBridge控制台完成自定义事件的查询和分析操作。
背景信息
自定义总线事件分析可查询全部事件内容。需要事先建立Schema,并将事件与Schema的关系映射至事件分析,即可在事件分析平台根据绑定的Schema信息对自定义事件进行数值检索、可视化分析、事件轨迹、事件溯源等。当前自定义事件绑定Schema映射有两种方式:
推送映射:通过PutEvents发布事件时定义dataschema参数绑定Schema URI信息。
规则映射:在配置事件规则时通过Schema标识绑定相关的Schema URI信息。
前提条件
创建阿里云账号并获取访问密钥。 请在阿里云控制台中的AccessKey管理页面上创建和查看您的账号及密钥。
使用限制
目前只支持创建和查询OpenAPI 3.0格式的事件Schema。
步骤一:新建Schema自定义注册表
- 登录事件总线EventBridge控制台,在左侧导航栏,单击Schema。
- 在顶部菜单栏,选择地域。
在Schema页面,选择自定义注册表页签,然后单击创建Schema。
在创建Schema面板,设置以下参数,然后单击确定。
参数
说明
示例
Schema标识
设置Schema的名称。
test
Schema描述
设置Schema的描述。
demo
Schema内容
直接创建:系统自动创建符合OpenAPI 3.0规范的JSON文本。
基于Json创建:根据您提供的JSON Sample,生成Schema。
直接创建
兼容类型
用于检查新版本与旧版本功能是否兼容。默认不执行兼容性检查。
不执行兼容性检查
创建完成后,可在Schema页面的自定义注册表页签中查看该Schema的URI地址、版本、格式及兼容类型等。
步骤二:选择以下任一种方式映射Schema
规则映射
在事件总线页面,单击目标自定义事件总线,在左侧导航栏,单击事件规则,然后单击创建规则。
在创建规则面板,配置以下信息,然后单击创建。
在配置基本信息页签,设置规则名称和描述,单击下一步。
在配置事件模式页签,设置需要查询的自定义事件源,然后单击下一步。
在配置事件目标页签,设置服务类型为EventBridge 事件分析,绑定映射方式为规则映射,然后选择与步骤一:新建Schema自定义注册表中相同的Group 名称、Schema 标识和Schema 版本。
推送映射
将dataschema参数和步骤一:新建Schema自定义注册表中获取的URI地址添加至SDK中,并推送事件。示例代码如下:
import com.aliyun.eventbridge.EventBridge; import com.aliyun.eventbridge.EventBridgeClient; import com.aliyun.eventbridge.models.CloudEvent; import com.aliyun.eventbridge.models.Config; import com.aliyun.eventbridge.models.PutEventsResponse; import com.aliyun.eventbridge.util.EventBuilder; import com.google.gson.Gson; import java.net.URI; import java.util.ArrayList; import java.util.Date; import java.util.List; public class PutEventsSample { private EventBridge eventBridgeClient; public PutEventsSample() { Config authConfig = new Config(); authConfig.accessKeyId = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");// AccessKey ID用于阿里云身份验证,请参照前提条件在阿里云控制台的AccessKey管理页面获取。 authConfig.accessKeySecret =System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");// AccessKey Secret用于阿里云身份验证,请参照前提条件在阿里云控制台的AccessKey管理页面获取。 authConfig.endpoint = "{endpoint}";// 接入点信息。具体信息,请参见地域和接入点。 eventBridgeClient = new EventBridgeClient(authConfig); } public void putEventsSample() { List<CloudEvent> cloudEventList = new ArrayList<>(); CloudEvent cloudEvent = EventBuilder.builder() .withId("a5074581-7e74-4e4c-868f-47e7afdf****") .withSource(URI.create("acs.oss")) .withType("oss:ObjectCreated:PostObject") .withSubject("acs:oss:cn-hangzhou:{yourAccountId}:xls-papk/game_apk/123.jpg") .withTime(new Date()) .withJsonStringData("{ \"E-Mail\": \"${email}\" }") .withAliyunEventBus("demo-bus") .build(); cloudEvent.setDataschema("{Schema URI}");//配置在步骤一中获取的Schema URI地址。 cloudEventList.add(cloudEvent); PutEventsResponse putEventsResponse = eventBridgeClient.putEvents(cloudEventList); System.out.println(new Gson().toJson(putEventsResponse)); } public static void main(String[] args){ PutEventsSample sample = new PutEventsSample(); try { sample.putEventsSample(); } catch (Throwable e) { e.printStackTrace(); } } }
在事件总线页面,单击目标自定义事件总线,在左侧导航栏,单击事件规则,然后单击创建规则。
在创建规则面板,配置以下信息,然后单击创建。
在配置基本信息页签,设置规则名称和描述,单击下一步。
在配置事件模式页签,设置需要查询的自定义事件源,然后单击下一步。
在配置事件目标页签,设置服务类型为EventBridge 事件分析,设置绑定映射方式为推送映射。
步骤三:事件查询
- 登录事件总线EventBridge控制台,在左侧导航栏,选择 。
- 在顶部菜单栏,选择地域。
- 在事件分析页面,按需配置以下参数,然后单击查询。
参数名称 是否必选 参数解释 事件总线 是 选择事件总线。 Schema 是 选择要查询的事件类型。关于阿里云官方事件源的事件类型,请参见阿里云官方事件源。 数值检索 否 选择要查询的字段和条件表达式。支持多选。条件表达式包括以下四种: =
:如选择此条件表达式,需再输入字段的值。表示检索所有符合key = value条件的事件。!=
:如选择此条件表达式,需再输入字段的值。表示检索所有符合key != value条件的事件。exists
:表示检索所有符合key exists
条件的事件。does-not-exist
:表示检索所有符合key does-not-exist
条件的事件。
说明 您也可以在该字段的右上角选择多个数值检索项之间是AND或者OR的关系。可视化分析 否 如果您需要通过图表的方式查看结果,可以选择设置可视化聚合函数。支持多选,一个可视化分析函数对应一个折线图。 GROUP BY 否 如果您需要按照属性对查询到的事件进行分组,可以选择事件属性。支持多选。 ORDER BY 否 按照可视化分析的聚合函数的升序或者降序对查询结果进行排序。支持多选。 查询时间 否 选择查询的时间范围。 查询条数 否 选择单次最大查询条数。 以上操作完成后,您可以在事件分析页面下方的可视化分析和数据表页签查看分析结果。
步骤四:结果分析
查询到的事件参数,请参见查询结果。