DataWorks为您提供类型事件还支持将本地程序注册为DataWorks扩展程序,以此实现通过扩展程序对DataWorks中的用户操作行为进行自定义逻辑处理并实现拦截阻断等行为管控。同时您可以将服务程序注册为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消息默认推送至指定的扩展程序服务,无需单独开启。
开发部署扩展程序:在扩展程序中接收、解析DataWorks推送的事件消息,自定义逻辑判断,并将结果返回至DataWorks。
开发部署扩展程序:自建服务方式:使用事件总线中消息最终路由的服务程序,来接受DataWorks消息,将消息进行逻辑判断后,通过指定的API回调处理结果。
开发部署扩展程序:函数计算方式:需实现函数计算的特定接口,用于接收扩展程序请求,并返回扩展程序处理结果。
注册扩展程序:在DataWorks侧定义开发的扩展程序将用于接收和处理哪一类事件消息。
测试扩展程序:在测试空间验证扩展程序是否符合预期。
提交上线扩展程序:确认无误后提交平台审核,审核通过后上线扩展程序给所有空间使用。
说明通常对扩展程序的审核会在
T+3
个工作日完成,请耐心等待。DataWorks开放事件消息有效期是3天 ,若超出3日则视为过期,扩展程序不予处理。
支持的扩展点事件列表
当前各模块支持通过扩展程序处理的扩展点事件分类及事件详情如下表。
开发部署扩展程序时,需使用以下各扩展点事件的事件编码信息,各事件的事件编码详情请参见开发参考:事件列表与消息格式。
仅标准模式工作空间支持发布相关扩展点。
扩展点拦截效果可参见应用示例:数据开发过程触发事件检查、应用示例:运维中心触发事件检查。
应用范围 | 系统模块 | 扩展点类型 | 扩展点 | 回调校验结果的OpenAPI |
空间级 | 节点变更 | 新增节点 | 您可通过UpdateIDEEventResult接口将事件处理结果回调至DataWorks。 | |
文件变更
| 删除文件 | |||
提交文件 | ||||
发布文件 | ||||
运行代码 | ||||
表变更 | 表提交开发环境 | |||
表发布生产环境 | ||||
节点运维 | 下线节点 | 您可通过UpdateWorkbenchEventResult接口将事件处理结果回调至DataWorks。 | ||
冻结节点 | ||||
解冻节点 | ||||
节点补数据 | 节点补数据 | |||
实例运维 | 冻结实例 | |||
解冻实例 | ||||
终止实例 | ||||
重跑实例(重跑、重跑下游) | ||||
置成功实例 | ||||
任务状态变更 | 调度任务状态变更 | |||
工作流状态变更 | 补数据实例、手动业务流程工作流状态变更 | |||
监控告警 | 监控告警 | |||
审批中心 | 创建申请单 | 您可通过CallbackExtension接口将事件处理结果回调至DataWorks。 | ||
安全中心 | 表权限申请 | |||
数据质量校验 | 校验结果反馈 | |||
校验完成 | ||||
租户级 | 空间管理 | 删除空间前置 | ||
删除空间后置 | ||||
数据下载 | 数据下载前置-文件生成 | |||
数据下载前置-文件下载 | ||||
数据上传 | 数据上传前置 |
附录:两类部署方式差异对比表
自建服务 | 函数计算 | |
操作难度 | 操作繁琐,涉及服务器、应用部署、网络以及运维问题。 | 操作简单,仅需一个函数即可完成扩展程序的部署操作。 |
费用 | - | 会产生相应函数计算费用,详情请参见计费概述。 |
支持事件 | 支持多种扩展事件,扩展事件详情请参见:开发参考:事件列表与消息格式。 | 函数计算部署仅支持数据下载/上传前置事件、资产上架/下架前置事件。 |