DataWorks支持您使用自定义的扩展程序来处理订阅的扩展点事件,并将处理结果通过OpenAPI返回给DataWorks。本文为您介绍开发自定义扩展程序的注意事项和流程。
前提条件
已完成准备工作,即已开启消息订阅、注册扩展程序的操作,并获取开发扩展程序所需的信息,详情请参见准备工作。
开发扩展程序流程
进行扩展程序相关代码开发有以下几个注意事项。
- 订阅并解析扩展点事件消息。
- OpenEvent基于EventBridge实现DataWorks事件消息的分发,您可以在EventBridge订阅事件消息,订阅的操作详情请参见什么是事件总线EventBridge。
- 解析扩展点事件消息时,发送给EventBridge的消息格式详情可参见附录:发送给EventBridge的消息格式。
- 获取扩展点事件详情并处理。
- 您可通过调用API,指定API中的
messageId
参数来获取详细的事件详情。说明- DataStudio中的扩展点事件可使用UpdateIDEEventResult这个API,运维中心的扩展点事件可使用UpdateWorkbenchEventResult这个API。
messageId
的参数取值可通过解析订阅获取的事件消息获取。
- 在扩展程序代码开发过程中,您可以使用参数来提高开发和应用效率,例如,您可以使用内置扩展程序参数
extension.project.disabled
,使扩展程序对某个工作空间不生效。更多扩展程序参数的使用配置请参见高级应用:扩展程序参数配置。
- 您可通过调用API,指定API中的
- 返回处理结果至DataWorks。您可通过API将扩展程序对扩展点事件的处理结果返回给DataWorks。说明 DataStudio中的扩展点事件可使用UpdateIDEEventResult这个API,运维中心的扩展点事件可使用UpdateWorkbenchEventResult这个API。
扩展程序示例
了解上述扩展程序开发注意事项后,您可根据业务需求开发自己的扩展程序代码,以下也提供了一些典型场景下,扩展程序注册、开发、应用的示例。
部署扩展程序
扩展程序代码开发调试完成后,您可将其部署在本地或阿里云ECS上,部署为一个应用服务,用于后续使用。同时您也可以开发一个扩展程序的在线信息查询的页面和帮助文档页面,用于查看每一个事件的处理过程和状态、学习了解扩展程序的逻辑。后续您可以将页面地址完善到扩展程序的注册信息中,并将扩展程序中使用了的参数添加到扩展程序参数配置中。
扩展程序注册信息各参数的详情如下。

参数 | 如何配置 |
---|---|
扩展程序名称 | 自定义扩展程序的名称,用于标识扩展程序。 |
处理的扩展点 | 选择该扩展程序用于处理哪几类扩展事件触发的消息。当前支持的扩展点及其详情请参见支持的扩展点事件列表,您可根据实际情况选择。 说明 选择完成后,配置界面会自动根据选择结果匹配所属事件和适用模块,无需手动配置。 |
负责人 | 选择扩展程序的负责人,方便扩展程序使用者遇到问题时能及时联系到负责人。 |
测试用工作空间 | 指定用于扩展程序测试用的工作空间。 扩展程序无需进行上线操作,即可在测试用工作空间中生效。 即开发人员可以在上线前,在测试空间中进行完整链路的测试验证,通过触发事件,来测试DataWorks通过EventBridge发送消息、扩展程序接收消息并进行消息审核与回调。 |
扩展程序详情地址 | 填写介绍扩展程序详情的地址,用于帮助扩展程序的用户更好的理解和使用此扩展程序。 您可以在开发部署扩展程序时,同时开发一个扩展程序的详情展示页面,完成后把页面地址配置在此处,以便使用者在触发扩展程序校验时,可通过此链接查看扩展程序完整的校验过程,例如,此次扩展程序检查链路和阻塞的原因。 |
扩展程序文档地址 | 填写扩展程序的帮助文档地址,供扩展程序的使用者阅读。 您可以在开发部署扩展程序时,同时开发一个扩展程序的帮助文档页面,完成后把页面地址配置在此处,以便使用者学习了解扩展程序的校验逻辑与属性。 |
扩展程序参数配置 | DataWorks支持在扩展程序开发过程中使用参数来提高扩展程序开发和应用效率,并为您提供了典型应用场景的内置参数供您直接使用,您也可以自定义参数,在扩展程序代码开发时,将需要应用的参数添加到此处即可。 支持添加多个参数,一行一个参数,参数格式为 |
扩展程序选项配置 | 扩展程序开发者可通过该选项定义可供扩展程序使用者使用的功能配置项,扩展程序选项配置可实现该扩展程序选项,在不同工作空间进行个性化管控。扩展程序开发者需要在此界面通过JSON字符串定义选项。例如:您可以通过选项配置让扩展程序使用者自行管控sql长度。JSON格式可参考文档:高级应用:扩展程序选项配置。 |