开启消息订阅

DataWorks的OpenEvent通过EventBridge为您提供事件消息订阅与发送服务。在EventBridge中创建自定义总线后,您需要在DataWorks中配置消息事件分发通道,以便在EventBridge中创建规则并完成事件的发布。本文为您介绍如何开启消息订阅服务与配置自定义总线。

前提条件

  • 已在以下地域拥有DataWorks企业版

    目前OpenEvent面向DataWorks企业版用户,华北2(北京)、华东1(杭州)、华南1(深圳)、华东2(上海)、华北3(张家口)、西南1(成都)、美国(硅谷)、美国(弗吉尼亚)、德国(法兰克福)、日本(东京)、中国(香港)、新加坡地域支持该功能。

  • 已开通EventBridge服务。DataWorks OpenEvent依赖于EventBridge的消息分发能力,通过EventBridge实现消息的订阅与消费,所以您需要先开通EventBridge产品服务,关于EventBridge产品介绍详情请参见什么是事件总线EventBridge

注意事项

  • 权限控制:仅开放平台管理员租户管理员、阿里云主账号或者拥有AliyunDataWorksFullAccess权限的RAM用户拥有开发者后台的读写权限,权限控制详情请参见全局级模块权限控制产品及控制台权限控制详情:RAM Policy

  • 版本限制:如果您使用的企业版DataWorks到期,所有扩展程序将会失效,无法再触发事件检查。已触发且未达终态的检查会自动通过。

工作原理

DataWorks 已开放核心流程的状态变更消息。您可以在 DataWorks 开放平台的 OpenEvent 模块中,通过设置 DataWorks 空间与 EventBridge 事件总线的映射关系,将某个空间内所有已开放的消息推送至 EventBridge 的指定事件总线。随后,您可以前往 EventBridge 服务进行更进一步的消息管理,例如从 DataWorks 发送至 EventBridge 的所有事件消息中筛选出最终目标端需要消费的消息,并定义这些事件消息最终发送到哪类服务或如何被消费。

image
说明

租户级别模块的操作产生的消息将自动推送至 EventBridge 默认的事件总线Default中。

DataWorks侧

DataWorks需要通过配置事件分发通道,将事件消息推送至EventBridge事件总线中,所以需要在DataWorks产品侧按照以下步骤完成DataWorks与EventBridge的服务授权,以及指定DataWorks开放的消息推送至EventBridge的事件总线。

步骤一:服务授权

初次使用OpenEvent服务,请使用主账号或拥有AliyunDataWorksFullAccess权限的RAM账号,参考以下步骤,实现DataWorks可访问EventBridge服务。

  1. 进入开放平台页面。

    登录DataWorks控制台,切换至目标地域后,单击左侧导航栏的更多 > 开放平台,进入开放平台的开发者后台页面。

  2. 进入OpenEvent页面。

    在开放平台的开发者后台页面,单击左侧导航栏中的OpenEvent,进入OpenEvent页面。

  3. 授权DataWorks访问EventBridge资源。

    若您是首次使用,则会出现单击授权按钮,您需根据界面指引授权DataWorks访问EventBridge资源,授权后将自动RAM访问控制身份管理 > 角色中创建一个服务关联角色AliyunServiceRoleForDataWorksOpenPlatform。关于该RAM角色的相关说明,详情请参见附录:DataWorks服务关联角色

步骤二:配置事件分发通道

事件分发通道能将DataWorks空间与EventBridge事件总线映射起来,即是通过事件分发通道指定DataWorks某工作空间下所有已开放的消息推送至EventBridge某事件总线。

  1. 进入OpenEvent页面。

    在开放平台的开发者后台页面,单击左侧导航栏中的OpenEvent,进入OpenEvent页面。

  2. 配置事件分发通道。

    单击添加事件分发通道按钮,会出现添加事件分发通道的弹窗,在弹窗内配置需要分发事件的工作空间指定分发到EventBridge中自定义总线

    说明
    • 若您在EventBridge内无可用的事件总线,也可以通过直接单击创建自定义事件总线,跳转至事件总线EventBridge创建自定义事件总线单击快捷创建与工作空间同名的自定义总线快速生成事件总线。

    • 租户级别模块操作产生的消息将自动推送至EventBridge自带的事件总线Default中,若要接收租户级模块产生的事件消息,您可跳过此步骤。

    image

步骤三:开启事件分发通道

事件分发通道配置完成后,可在OpenEvent的页面内查看创建的分发通道。在其操作列,可对分发通道执行删除启用禁用操作。

  • 启用:启用该事件分发通道后,该工作空间的事件消息将会推送至EventBridge中对应的事件总线。

    可通过EventBridge控制台查看DataWorks推送至EventBridge的所有事件消息,筛选出最终目标端需要消费的消息,并定义这些消息最终发送到哪些服务以及如何消费。

  • 禁用:禁用该事件分发通道后,该工作空间的事件消息将停止向EventBridge中对应的事件总线推送,您将无法通过EventBridge接收到相应的事件消息。

  • 删除:删除该事件分发通道后,该工作空间的事件消息将停止向EventBridge中对应的事件总线推送,您将无法通过EventBridge接收到相应的事件消息。

单击启用后,事件分发通道将处于启用状态,通过该通道分发到事件总线的消息会按照规则推送至配置的事件目标中。

EventBridge侧

DataWorks事件分发通道开启后,DataWorks已开放的消息将自动推送至EventBridge事件总线,需要在EventBridge产品侧配置筛选,筛选出DataWorks发送至EventBridge的所有事件消息中需要被消费的消息,并定义这些事件消息,最终发送到哪类服务或如何被消费。

步骤一:创建自定义事件总线(可选)

若在步骤二:配置事件分发通道创建的与DataWorks工作空间同名的自定义总线,直接使用该事件总线,若是单击创建自定义总线,可按照以下步骤自定义总线。EventBridge详情请参见事件总线概述

  1. 进入EventBridge控制台后,单击左侧导航栏内事件总线跳转至事件总线页面。

  2. 进入事件总线后,在自定义事件总线内单击快速创建,创建事件总线。以下为手动创建自定义事件总线DataWorks2023

    image

说明
  • 自定义事件总线的名称描述配置完毕后,事件源规则目标均可跳过,快速创建一个事件总线。

  • 租户级别模块操作产生的消息将自动推送至EventBridge自带的事件总线Default中,若要接收租户级模块产生的事件消息,您可跳过此步骤。

步骤二:配置事件规则

创建好事件总线后,可手动为事件总线配置事件规则实现将DataWorks的事件消息推送至相应服务中。

  1. 进入EventBridge控制台

  2. 配置事件规则。

    在左侧导航栏单击事件总线,找到需要配置数据过滤与指定路由服务的EventBridge事件总线,单击操作 > 事件规则进入事件规则配置页面。

    配置基本信息

    在事件规则页面单击左上角的创建规则按钮,进行事件规则的创建。image

    • 名称:为规则进行命名即可。

    • 描述:对该规则进行简单描述

    配置事件模式

    1. 通过模式内容过滤事件消息,按照以下样例进行配置:

      • 事件源类型:选择自定义事件源。

      • 事件源:保持默认。

      • 模式内容:利用JSON来进行配置相应的事件消息类型,DataWorks每个事件消息都有固定的消息类型,您可通过开发参考:事件列表与消息格式查看获取DataWorks各类操作对应的消息类型,并作为模式内容的type键的值进行配置。

        {
            "source": [
                "acs.dataworks"
            ],
            "type": [
                "dataworks:InstanceStatusChanges:InstanceStatusChanges"
            ]
        }

        image

    2. 完成事件模式配置后,可通过事件模式调试验证模式内容是否符合预期。

      若已完成DataWorks侧的步骤三:开启事件分发通道,此时的DataWorks事件消息已经可正常发送至EventBridge,您可在EventBridge事件追踪页面,查询该事件总线中DataWorks的所有事件,在操作列单击某一事件详情,复制事件详情信息,填写至事件模式调试中单击测试查看过滤是否生效。

      • 当事件类型不一致时,进行测试会出现匹配失败字样。

        image

      • 当事件类型一致时,进行测试会出现匹配通过,事件可正常被触发字样

        image

    配置事件目标

    事件目标除了可以推送至自建服务外,还可以推送至更多目标,用于消费事件,详情请参考事件目标概述

    image

    说明

    按图示上的配置是将消息推送至指定的HTTPS服务,若希望扩展程序接收此消息,您可以选择服务类型为HTTPS,并在URL配置为扩展程序部署地址即可

  3. 完成并保存事件规则配置后,即可通过事件总线EventBridge实现对DataWorks事件消息的分发路由,以及为后续的扩展程序(Extensions)提供了支持。

最佳实践

本地服务订阅消息:最佳实践:自定义任务发布封网管控

附录:查看推送的事件消息

当DataWorks的事件分发通道开启,且在DataWorks中触发了事件,您可在DataWorks事件分发绑定的事件总线的事件追踪页面,根据事件类型获取不同事件消息,事件类型可通过开发参考:事件列表与消息格式获取。

image