DataWorks扩展程序是一种插件,结合OpenAPI及OpenEvent,您可以通过扩展程序对DataWorks中的用户操作行为进行自定义逻辑处理并实现拦截阻断等行为管控。例如,您可以开发一个任务变更管控扩展程序,实现自定义任务发布流程管控。本文为您介绍扩展程序的基本情况。
使用限制
仅支持DataWorks企业版。
支持地域:华北2(北京)、华东1(杭州)、华东2(上海)、华北3(张家口)、华南1(深圳)、西南1(成都)、美国(硅谷)、美国(弗吉尼亚)、德国(法兰克福)、日本(东京)、中国(香港)、新加坡。
注意事项
权限控制:仅开放平台管理员和租户管理员、阿里云主账号或者拥有AliyunDataWorksFullAccess权限的RAM用户拥有开发者后台的读写权限,权限控制详情请参见全局级模块权限控制、产品及控制台权限控制详情:RAM Policy。
版本期限:如果您使用的企业版DataWorks到期,所有扩展程序将会失效,无法再触发事件检查。已触发且未达终态的检查会自动通过。
使用限制:目前仅部分扩展点事件支持通过函数计算方式部署扩展程序。
产品能力
DataWorks开放平台提供了丰富的扩展点,基于扩展点提供了扩展程序(Extensions)机制,扩展程序是一种插件,结合OpenAPI和开放消息OpenEvent,实现满足您业务需求的个性化功能定制,以及对DataWorks侧的操作拦截和阻断等行为进行管控。
适用的管控场景:
管控表/任务命名规范。
管控重复数据同步任务。
管控任务计费。
管控任务依赖。
说明您可参考开发参考:事件列表与消息格式中的事件类型实现更多场景。
自定义管控流程说明:当使用扩展程序来对扩展点的操作进行管控时,DataWorks平台使用者在平台侧针对扩展点的操作会被中断,需在自定义的扩展程序返回结果后,才可继续操作。
例如:在标准模式工作空间下,您可以在原任务开发发布基础流程上,新增对某函数的检测的扩展程序,实现任务发布流程从开发>提交>发布到开发>提交前校验>提交>发布前检查>发布的任务流程转变。可参见最佳实践:(高级特性应用)禁止使用MAX_PT函数示例。
开发流程
在DataWorks中,您可以通过自建服务或函数计算服务方式开发部署扩展程序实现自定义流程管控。
配置开放事件推送事件消息:根据业务需要接收的扩展点事件类型,选择合适的方式开发部署扩展程序。
使用自建服务开发部署扩展程序:依赖于EventBridge的消息分发能力,请确保已指定好DataWorks消息发送至EventBridge中的哪个事件总线,并在该事件总线中配置消息的路由服务。
使用函数计算开发部署扩展程序:DataWorks消息默认推送至指定的FC函数服务,无需在OpenEvent中配置事件总线。
开发部署扩展程序:在扩展程序中接收、解析DataWorks推送的事件消息,自定义逻辑判断,并将结果返回至DataWorks。
开发部署扩展程序:自建服务方式:使用事件总线中消息最终路由的服务程序,来接受DataWorks消息,将消息进行逻辑判断后,通过指定的API回调处理结果。
开发部署扩展程序:函数计算方式:需实现函数计算的特定接口,用于接收扩展程序请求,并返回扩展程序处理结果。
注册扩展程序:在DataWorks侧定义开发的扩展程序将用于接收和处理哪一类事件消息。
测试扩展程序:在测试空间验证扩展程序是否符合预期。
提交上线扩展程序:确认无误后提交平台审核,审核通过后上线扩展程序给所有空间使用。
说明通常对扩展程序的审核会在
T+3
个工作日完成,请耐心等待。DataWorks开放事件消息有效期是3天,若超出3日则视为过期,扩展程序不予处理。
支持的扩展点事件列表
当前各模块支持通过扩展程序处理的扩展点事件分类及事件详情如下表。
开发部署扩展程序时,需使用不同扩展点对应的eventcode,各事件的事件编码详情请参见开发参考:事件列表与消息格式。
仅标准模式工作空间支持发布相关扩展点。
扩展点拦截效果可参见应用示例:数据开发过程触发事件检查、应用示例:运维中心触发事件检查。
应用范围 | 系统模块 | 扩展点类型 | 扩展点 | 回调校验结果的OpenAPI |
空间级 | 文件变更事件
| 文件删除前置事件 | 您可通过UpdateIDEEventResult接口将事件处理结果回调至DataWorks。 | |
文件提交前置事件 | ||||
文件发布前置事件 | ||||
代码运行前置事件 | ||||
表变更事件 | 表提交到生产前置事件 | |||
表提交到开发前置事件 | ||||
节点变更事件 | 开启任务 | 您可通过CallbackExtension接口将事件处理结果回调至DataWorks。 | ||
批量实时任务 | ||||
节点变更事件 | 节点下线前置事件 | 您可通过UpdateWorkbenchEventResult接口将事件处理结果回调至DataWorks。 | ||
节点冻结前置事件 | ||||
节点解冻前置事件 | ||||
补数据操作事件 | 补数据前置事件 | |||
实例变更事件 | 冻结实例前置事件 | |||
解冻实例前置事件 | ||||
杀死实例前置事件 | ||||
重跑实例前置事件 | ||||
置成功实例前置状态 | ||||
审批中心事件 | 创建权限申请单前置事件 | 您可通过CallbackExtension接口将事件处理结果回调至DataWorks。 | ||
数据质量校验事件 | 批量创建数据质量规则前置事件 | |||
批量更新数据质量规则前置事件 | ||||
更新数据质量规则前置事件 | ||||
批量删除数据质量规则前置事件 | ||||
创建数据质量监控前置事件 | ||||
更新数据质量监控前置事件 | ||||
克隆数据质量监控前置事件 | ||||
创建数据质量监控告警订阅前置事件 | ||||
批量删除数据质量监控前置事件 | ||||
更新数据质量监控告警订阅前置事件 | ||||
删除数据质量监控告警订阅前置事件 | ||||
租户级 | 项目空间变更事件 | 删除项目空间前置事件 | ||
数据下载事件 | 数据下载前置事件-文件生成 | |||
数据下载前置事件-文件下载 | ||||
数据上传前置事件 |
附录:两类部署方式差异对比表
自建服务 | 函数计算 | |
操作难度 | 操作繁琐,涉及服务器、应用部署、网络以及运维问题。 | 操作简单,仅需一个函数即可完成扩展程序的部署操作。 |
费用 | - | 会产生相应函数计算费用,详情请参见计费概述。 |
支持事件 | 支持多种扩展事件,扩展事件详情请参见:开发参考:事件列表与消息格式。 | 函数计算部署仅支持数据下载/上传前置事件、资产上架/下架前置事件。 |