DataWorks通过OpenEvent能力为您提供消息推送订阅能力,同时您可以将服务程序注册为DataWorks的扩展程序,通过扩展程序来卡点并响应订阅的事件消息,以此实现通过扩展程序对特定事件进行消息通知与流程管控。本文为您介绍通过OpenEvent和扩展程序实现消息通知与流程管控的功能概述。

使用限制

  • 目前仅面向DataWorks企业版用户公测,华北2(北京)、华东1(杭州)、华东2(上海)、华北3(张家口)、华南1(深圳)、西南1(成都)、美国(硅谷)、美国(弗吉尼亚)、德国(法兰克福)、日本(东京)、中国(香港)、新加坡地域支持该功能。
  • 仅支持阿里云主账号或者有AliyunDataWorksFullAccess权限的RAM用户权限的用户可以直接进行界面相关配置,关于DataWorks权限说明,详情请参见产品及控制台权限控制详情:RAM Policy

注意事项

  • 当DataWorks企业版过期、扩展程序被下线或禁用时,扩展程序便会失效,其控制的相关流程检查与阻塞将不生效,相关流程系统将直接通过。
  • 扩展程序处于测试中已上线状态时,不会直接生效,需工作空间管理员在管理中心扩展程序设置页面启用后才会生效。
    • 处于测试中状态,仅测试工作空间可启用。
    • 处于已上线状态,当前地域的所有工作空间均可启用。
  • 扩展程序在上线前需提交至DataWorks平台审核,审核通过后,方可操作上线。
    说明 通常,审核将在T+3工作日内完成,请耐心等待。

产品能力

DataWorks作为阿里云一站式大数据开发与治理平台,在各项能力支持上预设置了很多拓展点,例如,在标准模式下,简略来看,节点创建后完成代码开发后,需先提交到开发环境中进行验证,完成后再正式发布到生产环境中,后续每天根据调度配置定时运行,如果节点不再需要,可以删除节点。产品能力在这个流程中DataWorks预置了几个扩展点,您可以基于扩展点增加自定义管控流程,例如下列场景:
  • 增加代码评审流程。

    当用户单击提交节点时,流程进入自定义代码评审流程中,不直接提交到开发环境中进行验证。自定义评审流程通过后再提交至开发环境。

  • 增加发布前审核流程。

    当用户单击发布节点时,流程进入自定义发布前审核流程中,不直接发布到生产环境。自定义审核流程通过后,再发布至生产环境。

上述场景中的流程管控,是通过DataWorks提交文件扩展点和发布文件扩展点实现流程卡点,并通过您注册在DataWorks上的扩展程序实现自定义流程管控。您可以将自己开发的应用注册到DataWorks上成为扩展程序,并通过OpenEvent和OpenAPI进行扩展程序与DataWorks的通信,进而实现自定义流程控制。处理流程大致如下:
  1. 通过OpenEvent实现扩展消息订阅。

    OpenEvent通过EventBridge为您提供部分事件的消息订阅,详情请参见OpenEvent概述。完成订阅后,您可以获取到对应事件的消息详情,例如,提交节点为文件提交类事件,这类事件的消息详情会包含节点ID、操作人UID、项目空间ID等信息。各类事件的消息格式详情请参见附录:发送给EventBridge的消息格式

  2. 通过扩展程序实现扩展点事件处理。

    DataWorks支持将用户的服务程序注册为扩展程序,订阅接收到事件消息后,通过扩展程序处理事件并将处理结果通过OpenAPI返回给DataWorks。其中,支持通过扩展程序处理事件的扩展点列表详情请参见下文的支持的扩展点事件列表

  3. 通过OpenAPI实现扩展点事件处理结果回调。
    扩展点事件触发等待扩展程序处理过程中,当前的流程会变为“检查中”状态,OpenAPI会将扩展程序的处理结果返回给DataWorks,DataWorks根据反馈结果状态继续流程。
    • 处理结果为通过:事件符合扩展程序校验逻辑,当前流程通过后继续,状态从“检查中”变为“通过”。
    • 处理结果为不通过:事件不符合扩展程序校验逻辑,需阻塞此次流程,状态从“检查中”变为“不通过”。

支持的扩展点事件列表

当前支持通过扩展程序处理的扩展点事件分类及事件详情如下表。
说明 进行扩展程序注册开发时,需要使用以下各扩展点事件的事件编码信息,各事件的事件编码详情请参见开发参考:扩展事件编码
系统模块支持的扩展点扩展点事件回调校验结果的OpenAPI
数据开发文件提交扩展点文件提交前置事件:例如节点、资源、函数的提交操作。您可通过UpdateIDEEventResult这个API将事件处理结果回调至DataWorks。
文件发布扩展点文件发布前置事件:例如节点、资源、函数的发布操作。
说明 仅标准模式工作空间支持该扩展点。
文件运行扩展点文件运行前置事件:例如运行节点代码。
文件删除扩展点文件删除前置事件:例如在删除某个节点、资源、函数。
表提交扩展点表提交前置事件:例如表管理提交表。
表发布扩展点表发布前置事件:例如表管理发布表。
说明 仅标准模式工作空间支持该扩展点。
运维中心冻结节点节点冻结前置事件:例如在运维中心冻结某个节点。您可通过UpdateWorkbenchEventResult这个API将事件处理结果回调至DataWorks。
解冻节点节点解冻前置事件:例如在运维中心解冻某个节点。
下线节点节点下线前置事件:例如在运维中心下线某个节点。
补数据补数据前置事件:例如在运维中心进行补数据操作。
以DataStudio中节点提交事件为例,流程如下图所示。文件提交更多扩展点的触发应用示例可参见应用示例:数据开发过程触发事件检查应用示例:运维中心触发事件检查

操作流程

如上文所述,通过OpenEvent、扩展程序、OpenAPI实现自定义管控流程的完整的操作包括以下几个步骤。
  1. 准备工作:

    开启消息订阅,并注册扩展程序,获取开发扩展程序所需的必要信息。详情请参见准备工作

  2. 开发部署扩展程序。

    根据已获取的信息,开发扩展程序,并将扩展程序部署为一个应用服务。详情请参见开发部署扩展程序

    同时扩展程序为您提供的参数配置和选项配置,便于您灵活高效的使用扩展程序,应用详情请参见高级应用:扩展程序参数配置高级应用:扩展程序选项配置

  3. 测试应用扩展程序。

    扩展程序开发部署完成后,您即可在DataWorks的测试工作空间中测试扩展程序是否符合预期,完成测试后上线扩展程序,由管理员在使用的工作空间中启用扩展程序。详情请参见测试应用扩展程序